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 ajax对特殊字符进行转义防止js注入使用示例
Nov 21 Javascript
Node.js实现简单聊天服务器
Jun 20 Javascript
jQuery操作iframe中js函数的方法小结
Jul 06 Javascript
JavaScript面向对象编写购物车功能
Aug 19 Javascript
基于vue实现分页/翻页组件paginator示例
Mar 09 Javascript
Mint-UI时间组件起始时间问题及时间插件使用
Aug 20 Javascript
vue动态子组件的两种实现方式
Sep 01 Javascript
使用layui的layer组件做弹出层的例子
Sep 27 Javascript
微信小程序indexOf的替换方法(推荐)
Jan 14 Javascript
JQuery实现折叠式菜单的详细代码
Jun 03 jQuery
vue.js页面加载执行created,mounted的先后顺序说明
Nov 07 Javascript
angular8.5集成TinyMce5的使用和详细配置(推荐)
Nov 16 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
一个PHP模板,主要想体现一下思路
2006/12/25 PHP
二招解决php乱码问题
2012/03/25 PHP
Apache实现Web Server负载均衡详解(不考虑Session版)
2013/07/05 PHP
PHP explode()函数的几个应用和implode()函数有什么区别
2015/11/05 PHP
配置eAccelerator和XCache扩展来加速PHP程序的执行
2015/12/22 PHP
PHP 自动加载的简单实现(推荐)
2016/08/12 PHP
文字幻灯片
2006/06/26 Javascript
jquery下利用jsonp跨域访问实现方法
2010/07/29 Javascript
一个简单的js树形菜单
2011/12/09 Javascript
jquery退出each循环的写法
2014/02/26 Javascript
JavaScript检查某个function是否是原生代码的方法
2014/08/20 Javascript
全面接触神奇的Bootstrap导航条实战篇
2016/08/01 Javascript
完美解决jQuery 鼠标快速滑过后,会执行多次滑出的问题
2016/12/08 Javascript
基于HTML5+JS实现本地图片裁剪并上传功能
2017/03/24 Javascript
详解webpack+angular2开发环境搭建
2017/06/28 Javascript
javaScript实现复选框全选反选事件详解
2020/11/20 Javascript
微信小程序云开发如何使用npm安装依赖
2019/05/18 Javascript
查看TensorFlow checkpoint文件中的变量名和对应值方法
2018/06/14 Python
matplotlib给子图添加图例的方法
2018/08/03 Python
python3实现zabbix告警推送钉钉的示例
2019/02/20 Python
Python Flask框架扩展操作示例
2019/05/03 Python
Python实现平行坐标图的两种方法小结
2019/07/04 Python
python 梯度法求解函数极值的实例
2019/07/10 Python
python中文分词库jieba使用方法详解
2020/02/11 Python
安纳塔拉酒店度假村及水疗官方网站:Anantara Hotel
2016/08/25 全球购物
高级运动鞋:GREATS
2019/07/19 全球购物
教师申诉制度
2014/01/29 职场文书
激情洋溢的毕业生就业求职信
2014/03/15 职场文书
大学生励志演讲稿
2014/04/25 职场文书
2014年安全生产工作总结
2014/11/13 职场文书
2015年国际护士节演讲稿
2015/03/18 职场文书
培训班通知
2015/04/25 职场文书
MySql学习笔记之事务隔离级别详解
2021/05/12 MySQL
Python预测分词的实现
2021/06/18 Python
mysql函数之截取字符串的实现
2022/08/14 MySQL
HttpClient实现表单提交上传文件
2022/08/14 Java/Android