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中操作时间之getUTCMilliseconds()方法的使用
Jun 10 Javascript
动态加载jQuery的方法
Jun 16 Javascript
使用AngularJS创建单页应用的编程指引
Jun 19 Javascript
jQuery地图map悬停显示省市代码分享
Aug 20 Javascript
jquery利用json实现页面之间传值的实例解析
Dec 12 Javascript
layui实现文件或图片上传记录
Aug 28 Javascript
Vue自定义指令上报Google Analytics事件统计的方法
Feb 25 Javascript
NUXT SSR初级入门笔记(小结)
Dec 16 Javascript
vue中实现点击按钮滚动到页面对应位置的方法(使用c3平滑属性实现)
Dec 29 Javascript
Vue的双向数据绑定实现原理解析
Feb 17 Javascript
js实现简单音乐播放器
Jun 30 Javascript
Vue实现摇一摇功能(兼容ios13.3以上)
Jan 26 Vue.js
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
微信公众平台实现获取用户OpenID的方法
2015/04/15 PHP
Laravel框架路由和控制器的绑定操作方法
2018/06/12 PHP
PHP之header函数详解
2021/03/02 PHP
js中Math之random,round,ceil,floor的用法总结
2013/12/26 Javascript
jQuery级联操作绑定事件实例
2014/09/02 Javascript
原生js和jQuery写的网页选项卡特效对比
2015/04/27 Javascript
localResizeIMG先压缩后使用ajax无刷新上传(移动端)
2015/08/11 Javascript
如何检测JavaScript的各种类型
2016/07/30 Javascript
javascript实现页面滚屏效果
2017/01/17 Javascript
微信小程序的动画效果详解
2017/01/18 Javascript
Vue.js 60分钟快速入门教程
2017/03/28 Javascript
JS实现复选框的全选和批量删除功能
2017/04/05 Javascript
浅谈MUI框架中加载外部网页或服务器数据的方法
2018/01/31 Javascript
解决axios会发送两次请求,有个OPTIONS请求的问题
2018/10/25 Javascript
深入浅析JavaScript中的in关键字和for-in循环
2020/04/20 Javascript
Vuex的各个模块封装的实现
2020/06/05 Javascript
[31:01]2014 DOTA2国际邀请赛中国区预选赛5.21 CNB VS Orenda
2014/05/23 DOTA
在Mac OS上部署Nginx和FastCGI以及Flask框架的教程
2015/05/02 Python
浅析Python中MySQLdb的事务处理功能
2016/09/21 Python
python实现AES加密解密
2019/03/28 Python
numpy和pandas中数组的合并、拉直和重塑实例
2019/06/28 Python
django 模版关闭转义方式
2020/05/14 Python
Pytorch损失函数nn.NLLLoss2d()用法说明
2020/07/07 Python
佳能英国官方网站:Canon UK
2017/08/08 全球购物
英国床垫和床架购物网站:Bedman
2019/11/04 全球购物
外语专业毕业生自我评价分享
2013/10/05 职场文书
应届毕业生个人求职自荐信
2014/01/06 职场文书
幼儿园中班教师寄语
2014/04/03 职场文书
《桂花雨》教学反思
2014/04/12 职场文书
教师节主题班会教案
2015/08/17 职场文书
js实现上传图片到服务器
2021/04/11 Javascript
JDBC连接的六步实例代码(与mysql连接)
2021/05/12 MySQL
总结一些Java常用的加密算法
2021/06/11 Java/Android
golang内置函数len的小技巧
2021/07/25 Golang
Java获取e.printStackTrace()打印的信息方式
2021/08/07 Java/Android
vue特效之翻牌动画
2022/04/20 Vue.js