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时ie6和ie7,ff的区别
Aug 19 Javascript
getElementByIdx_x js自定义getElementById函数
Jan 24 Javascript
js数组循环遍历数组内所有元素的方法
Jan 18 Javascript
jQuery Easyui 验证两次密码输入是否相等
May 13 Javascript
JS实现表单多文件上传样式美化支持选中文件后删除相关项
Sep 30 Javascript
canvas简单快速的实现知乎登录页背景效果
May 08 Javascript
详解设置Webstorm 利用babel将ES6自动转码成ES5
Dec 20 Javascript
webpack多入口文件页面打包配置详解
Jan 09 Javascript
一个简单的node.js界面实现方法
Jun 01 Javascript
vue+canvas实现炫酷时钟效果的倒计时插件(已发布到npm的vue2插件,开箱即用)
Nov 05 Javascript
微信小程序新手教程之启动页的重要性
Mar 03 Javascript
Vue.js watch监视属性知识点总结
Nov 11 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
DWZ+ThinkPHP开发时遇到的问题分析
2016/12/12 PHP
javascript showModalDialog,open取得父窗口的方法
2010/03/10 Javascript
js中的异常处理try...catch使用介绍
2013/09/21 Javascript
JavaScript框架(iframe)操作总结
2014/04/16 Javascript
jQuery响应鼠标事件并隐藏与显示input默认值
2014/08/24 Javascript
深入探寻seajs的模块化与加载方式
2015/04/14 Javascript
javascript格式化指定日期对象的方法
2015/04/21 Javascript
JavaScript  cookie 跨域访问之广告推广
2016/04/20 Javascript
JavaScript String 对象常用方法总结
2016/04/28 Javascript
JavaScript代码里的判断小结
2016/08/22 Javascript
js实现各种复制到剪贴板的方法(分享)
2016/10/27 Javascript
集合Bootstrap自定义confirm提示效果
2017/09/19 Javascript
vue2.0 资源文件assets和static的区别详解
2018/04/08 Javascript
解决angularjs前后端分离调用接口传递中文时中文乱码的问题
2018/08/13 Javascript
JS判断用户用的哪个浏览器实例详解
2018/10/09 Javascript
antd design table更改某行数据的样式操作
2020/10/31 Javascript
[01:19]2014DOTA2国际邀请赛 采访TITAN战队ohaiyo 能赢DK很幸运
2014/07/12 DOTA
[01:07]2015国际邀请赛 中国区预选赛精彩回顾
2015/06/15 DOTA
Python素数检测实例分析
2015/06/15 Python
Python帮你微信头像任意添加装饰别再@微信官方了
2019/09/25 Python
python如何使用socketserver模块实现并发聊天
2019/12/14 Python
详解Python3 中的字符串格式化语法
2020/01/15 Python
浅谈pymysql查询语句中带有in时传递参数的问题
2020/06/05 Python
python切割图片的示例
2020/11/12 Python
CSS3中利用animation属性创建雪花飘落特效
2014/05/14 HTML / CSS
MIS软件工程师的面试题
2016/04/22 面试题
医科大学生毕业的自我评价分享
2013/11/12 职场文书
自荐信封面
2013/12/04 职场文书
应届优秀本科大学毕业生自我鉴定
2014/01/21 职场文书
一年级班主任感言
2014/03/08 职场文书
《四季》教学反思
2014/04/08 职场文书
植树节标语
2014/06/27 职场文书
培训后的感想
2015/08/07 职场文书
GitHub上77.9K的Axios项目有哪些值得借鉴的地方详析
2021/06/15 Javascript
java设计模式--三种工厂模式详解
2021/07/21 Java/Android
Nginx实现会话保持的两种方式
2022/03/18 Servers