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 相关文章推荐
基于jquery封装的一个js分页
Nov 15 Javascript
javascript基础语法学习笔记
Jan 04 Javascript
Node.js的npm包管理器基础使用教程
May 26 Javascript
Bootstrap页面布局基础知识全面解析
Jun 13 Javascript
使用JS实现气泡跟随鼠标移动的动画效果
Sep 16 Javascript
JavaScript中的高级函数
Jan 04 Javascript
详解vue-meta如何让你更优雅的管理头部标签
Jan 18 Javascript
vue项目实战总结篇
Feb 11 Javascript
详解ES6 Symbol 的用途
Oct 14 Javascript
axios如何取消重复无用的请求详解
Dec 15 Javascript
vue中利用iscroll.js解决pc端滚动问题
Feb 15 Javascript
基于vue中的scoped坑点解说
Sep 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
环境会对咖啡种植有什么影响
2021/03/03 咖啡文化
PHP Curl多线程原理实例详解
2013/11/06 PHP
php计算数组不为空元素个数的方法
2014/01/27 PHP
PHP中调用C/C++制作的动态链接库的教程
2016/03/10 PHP
Laravel使用模型实现like模糊查询的例子
2019/10/24 PHP
greybox——不开新窗口看新的网页
2007/02/20 Javascript
JavaScript 学习技巧
2010/02/17 Javascript
JavaScript继承方式实例
2010/10/29 Javascript
jquery 延迟执行实例介绍
2013/08/20 Javascript
js继承call()和apply()方法总结
2014/12/08 Javascript
AngularJS 自定义过滤器详解及实例代码
2016/09/14 Javascript
微信小程序 在Chrome浏览器上运行以及WebStorm的使用
2016/09/27 Javascript
解析NodeJs的调试方法
2016/12/11 NodeJs
JS中正则表达式要注意lastIndex属性
2017/08/08 Javascript
vue封装第三方插件并发布到npm的方法
2017/09/25 Javascript
对vue下点击事件传参和不传参的区别详解
2018/09/15 Javascript
vue组件内部引入外部js文件的方法
2020/01/18 Javascript
详解Vue.js3.0 组件是如何渲染为DOM的
2020/11/10 Javascript
python实现电子词典
2020/04/23 Python
Python中的yield浅析
2014/06/16 Python
python进阶教程之动态类型详解
2014/08/30 Python
Python描述器descriptor详解
2015/02/03 Python
Python进程间通信用法实例
2015/06/04 Python
Python对接 xray 和微信实现自动告警
2019/09/17 Python
numpy中三维数组中加入元素后的位置详解
2019/11/28 Python
python中有关时间日期格式转换问题
2019/12/25 Python
受外贸欢迎的美国主机:BlueHost
2017/05/16 全球购物
有影响力的人、名人和艺术家的官方商品:Represent
2019/11/26 全球购物
编辑找工作求职信范文
2013/12/16 职场文书
工厂会计员职责
2014/02/06 职场文书
项目投资建议书
2014/05/16 职场文书
初中学习计划书范文
2014/09/15 职场文书
老人节标语大全
2014/10/08 职场文书
2015年教学管理工作总结
2015/05/20 职场文书
化验室安全管理制度
2015/08/06 职场文书
MySQL插入数据与查询数据
2022/03/25 MySQL