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选择器 $实现原理
Dec 02 Javascript
jQuery bxCarousel实现图片滚动切换效果示例代码
May 15 Javascript
node.js应用后台守护进程管理器Forever安装和使用实例
Jun 01 Javascript
js实现搜索框关键字智能匹配代码
Mar 26 Javascript
Vuejs第一篇之入门教程详解(单向绑定、双向绑定、列表渲染、响应函数)
Sep 09 Javascript
jQueryUI 拖放排序遇到滚动条时有可能无法执行排序的小bug及解决方案
Dec 19 Javascript
微信小程序日历组件calendar详解及实例
Jun 08 Javascript
JavaScript之map reduce_动力节点Java学院整理
Jun 29 Javascript
vue axios登录请求拦截器
Apr 02 Javascript
小程序实现自定义导航栏适配完美版
Apr 02 Javascript
使用React-Router实现前端路由鉴权的示例代码
Jul 26 Javascript
vuex刷新后数据丢失的解决方法
Oct 18 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编程效率的方法
2013/11/07 PHP
php多文件上传实现代码
2014/02/20 PHP
PHP中使用php://input处理相同name值的表单数据
2015/02/03 PHP
PHP基于phpqrcode类生成二维码的方法详解
2018/03/14 PHP
PHP parse_ini_file函数的应用与扩展操作示例
2019/01/07 PHP
js模拟类继承小例子
2010/07/17 Javascript
js中parseFloat(参数1,参数2)定义和用法及注意事项
2013/01/27 Javascript
javaScript 计算两个日期的天数相差(示例代码)
2013/12/27 Javascript
js实现键盘上下左右键选择文字并显示在文本框的方法
2015/05/07 Javascript
JavaScript判断undefined类型的正确方法
2015/06/30 Javascript
Jquery日历插件制作简单日历
2015/10/28 Javascript
js中删除数组中的某一元素实例(无下标时)
2017/02/28 Javascript
JS创建Tag标签的方法详解
2017/06/09 Javascript
Angular实现表单验证功能
2017/11/13 Javascript
Angular2整合其他插件的方法
2018/01/20 Javascript
[01:13:08]2018DOTA2亚洲邀请赛4.6 淘汰赛 mineski vs LGD 第二场
2018/04/10 DOTA
Python 逐行分割大txt文件的方法
2017/10/10 Python
Python3 操作符重载方法示例
2017/11/23 Python
python实现本地图片转存并重命名的示例代码
2018/10/27 Python
python虚拟环境迁移方法
2019/01/03 Python
pyqt5 获取显示器的分辨率的方法
2019/06/18 Python
Django Admin中增加导出CSV功能过程解析
2019/09/04 Python
css3 中的新特性加强记忆详解
2016/04/16 HTML / CSS
SIDESTEP荷兰:在线购买鞋子
2019/11/18 全球购物
金山毒霸系列的笔试题
2013/04/13 面试题
php优化查询foreach代码实例讲解
2021/03/24 PHP
中韩经贸翻译专业大学生职业生涯规划范文
2014/09/18 职场文书
党的群众路线教育实践活动个人对照检查剖析材料
2014/09/23 职场文书
2015关爱留守儿童工作总结
2014/12/12 职场文书
2014年英语教学工作总结
2014/12/17 职场文书
2015社区精神文明建设工作总结
2015/04/21 职场文书
小学生禁毒教育心得体会
2016/01/15 职场文书
vue使用节流函数的踩坑实例指南
2021/05/20 Vue.js
SQL IDENTITY_INSERT作用案例详解
2021/08/23 MySQL
js判断两个数组相等的5种方法
2022/05/06 Javascript
MySQL聚簇索引和非聚簇索引的区别详情
2022/06/14 MySQL