javascript学习笔记之10个原生技巧


Posted in Javascript onMay 21, 2014

1、原生JavaScript实现字符串长度截取

function cutstr(str, len) {
    var temp;
    var icount = 0;
    var patrn = /[^\x00-\xff]/;
    var strre = "";
    for (var i = 0; i < str.length; i++) {
        if (icount < len - 1) {
            temp = str.substr(i, 1);
            if (patrn.exec(temp) == null) {
                icount = icount + 1
            } else {
                icount = icount + 2
            }
            strre += temp
        } else {
            break
        }
    }
    return strre + "..."
}

2、原生JavaScript获取域名主机

function getHost(url) {
    var host = "null";
    if(typeof url == "undefined"|| null == url) {
        url = window.location.href;
    }
    var regex = /^\w+\:\/\/([^\/]*).*/;
    var match = url.match(regex);
    if(typeof match != "undefined" && null != match) {
        host = match[1];
    }
    return host;
}

3、原生JavaScript清除空格

String.prototype.trim = function() {
    var reExtraSpace = /^\s*(.*?)\s+$/;
    return this.replace(reExtraSpace, "$1")
}

4、原生JavaScript替换全部

String.prototype.replaceAll = function(s1, s2) {
    return this.replace(new RegExp(s1, "gm"), s2)
}

5、原生JavaScript转义html标签

function HtmlEncode(text) {
    return text.replace(/&/g, '&').replace(/\"/g, '"').replace(/</g, '<').replace(/>/g, '>')
}

6、原生JavaScript还原html标签

function HtmlDecode(text) {
    return text.replace(/&/g, '&').replace(/"/g, '\"').replace(/</g, '<').replace(/>/g, '>')
}

7、原生JavaScript时间日期格式转换

Date.prototype.Format = function(formatStr) {
    var str = formatStr;
    var Week = ['日', '一', '二', '三', '四', '五', '六'];
    str = str.replace(/yyyy|YYYY/, this.getFullYear());
    str = str.replace(/yy|YY/, (this.getYear() % 100) > 9 ? (this.getYear() % 100).toString() : '0' + (this.getYear() % 100));
    str = str.replace(/MM/, (this.getMonth() + 1) > 9 ? (this.getMonth() + 1).toString() : '0' + (this.getMonth() + 1));
    str = str.replace(/M/g, (this.getMonth() + 1));
    str = str.replace(/w|W/g, Week[this.getDay()]);
    str = str.replace(/dd|DD/, this.getDate() > 9 ? this.getDate().toString() : '0' + this.getDate());
    str = str.replace(/d|D/g, this.getDate());
    str = str.replace(/hh|HH/, this.getHours() > 9 ? this.getHours().toString() : '0' + this.getHours());
    str = str.replace(/h|H/g, this.getHours());
    str = str.replace(/mm/, this.getMinutes() > 9 ? this.getMinutes().toString() : '0' + this.getMinutes());
    str = str.replace(/m/g, this.getMinutes());
    str = str.replace(/ss|SS/, this.getSeconds() > 9 ? this.getSeconds().toString() : '0' + this.getSeconds());
    str = str.replace(/s|S/g, this.getSeconds());
    return str
}

8、原生JavaScript判断是否为数字类型

function isDigit(value) {
    var patrn = /^[0-9]*$/;
    if (patrn.exec(value) == null || value == "") {
        return false
    } else {
        return true
    }
}

9、原生JavaScript设置cookie值

function setCookie(name, value, Hours) {
    var d = new Date();
    var offset = 8;
    var utc = d.getTime() + (d.getTimezoneOffset() * 60000);
    var nd = utc + (3600000 * offset);
    var exp = new Date(nd);
    exp.setTime(exp.getTime() + Hours * 60 * 60 * 1000);
    document.cookie = name + "=" + escape(value) + ";path=/;expires=" + exp.toGMTString() + ";domain=360doc.com;"
}

10、原生JavaScript获取cookie值

function getCookie(name) {
    var arr = document.cookie.match(new RegExp("(^| )" + name + "=([^;]*)(;|$)"));
    if (arr != null) return unescape(arr[2]);
    return null
}
Javascript 相关文章推荐
js textarea自动增高并隐藏滚动条
Dec 16 Javascript
关于js拖拽上传 [一个拖拽上传修改头像的流程]
Jul 13 Javascript
js/html光标定位的实现代码
Sep 23 Javascript
基于jquery实现表格无刷新分页
Jan 07 Javascript
javascript运动框架用法实例分析(实现放大与缩小效果)
Jan 08 Javascript
微信小程序 地图(map)实例详解
Nov 16 Javascript
JavaScript获取短信验证码(周期性)
Dec 29 Javascript
Angular 4环境准备与Angular cli创建项目详解
May 27 Javascript
vue页面使用阿里oss上传功能的实例(二)
Aug 09 Javascript
JS控制鼠标拒绝点击某一按钮的实例
Dec 29 Javascript
vue指令之表单控件绑定v-model v-model与v-bind结合使用
Apr 17 Javascript
JavaScript 实现HTML DOM增删改查操作的常见方法详解
Jan 04 Javascript
jquery实现预览提交的表单代码分享
May 21 #Javascript
javascript制作的网页侧边弹出框思路及实现代码
May 21 #Javascript
Jquery图片延迟加载插件jquery.lazyload.js的使用方法
May 21 #Javascript
Jquery的each里用return true或false代替break或continue
May 21 #Javascript
alert和confirm功能介绍
May 21 #Javascript
采用call方式实现js继承
May 20 #Javascript
Js+Jq获取URL参数的集中方法示例代码
May 20 #Javascript
You might like
表单的一些基本用法与技巧
2006/07/15 Javascript
js通过地址栏给action传值(中文乱码全是问号)
2013/05/02 Javascript
node.js中的fs.futimesSync方法使用说明
2014/12/17 Javascript
使用jQuery和Bootstrap实现多层、自适应模态窗口
2014/12/22 Javascript
jQuery中hover方法和toggle方法使用指南
2015/02/27 Javascript
JavaScript获取URL汇总
2015/06/08 Javascript
javascript实现信息增删改查的方法
2015/07/25 Javascript
快速学习jQuery插件 Cookie插件使用方法
2015/12/01 Javascript
实例剖析AngularJS框架中数据的双向绑定运用
2016/03/04 Javascript
jQuery提示插件qTip2用法分析(支持ajax及多种样式)
2016/06/08 Javascript
Javascript 判断两个IP是否在同一网段实例代码
2016/11/28 Javascript
AngularJS实现的输入框字数限制提醒功能示例
2017/10/26 Javascript
详解swiper在vue中的应用(以3.0为例)
2018/09/20 Javascript
Cookbook组件形式:优化 Vue 组件的运行时性能
2018/11/25 Javascript
js replace替换字符串同时替换多个方法
2018/11/27 Javascript
@angular前端项目代码优化之构建Api Tree的方法
2018/12/24 Javascript
bootstrap-table实现表头固定以及列固定的方法示例
2019/03/07 Javascript
基于Vue.js+Nuxt开发自定义弹出层组件
2020/10/09 Javascript
python开发中range()函数用法实例分析
2015/11/12 Python
python numpy格式化打印的实例
2018/05/14 Python
python读取txt文件并取其某一列数据的示例
2019/02/19 Python
python调用pyaudio使用麦克风录制wav声音文件的教程
2019/06/26 Python
Python 二叉树的层序建立与三种遍历实现详解
2019/07/29 Python
Django Admin后台添加数据库视图过程解析
2020/04/01 Python
python+requests接口压力测试500次,查看响应时间的实例
2020/04/30 Python
10分钟入门CSS3 Animation
2018/12/25 HTML / CSS
高级销售员求职信
2013/10/25 职场文书
婚礼主持词开场白
2014/03/13 职场文书
党员民主评议总结
2014/10/20 职场文书
小学二年级数学教学计划
2015/01/20 职场文书
毕业纪念册寄语大全
2015/02/26 职场文书
个人自荐书范文
2015/03/09 职场文书
毕业论文致谢范文
2015/05/14 职场文书
2015年司法局工作总结
2015/05/22 职场文书
信息简报范文
2015/07/21 职场文书
html5 录制mp3音频支持采样率和比特率设置
2021/07/15 Javascript