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 相关文章推荐
doctype后如何获得body.clientHeight的方法
Jul 11 Javascript
javascript预加载图片、css、js的方法示例介绍
Oct 14 Javascript
jQuery实现设置、移除文本框默认值功能
Jan 13 Javascript
js实现iframe自动自适应高度的方法
Feb 17 Javascript
jquery实现的蓝色二级导航条效果代码
Aug 24 Javascript
详解RequireJS按需加载样式文件
Apr 12 Javascript
AngularJS路由Ui-router模块用法示例
May 29 Javascript
js自定义Tab选项卡效果
Jun 05 Javascript
React Native中Navigator的使用方法示例
Oct 13 Javascript
JS实现的简单表单验证功能完整实例
Oct 14 Javascript
bootstrap响应式导航条模板使用详解(含下拉菜单,弹出框)
Nov 17 Javascript
基于Vue制作组织架构树组件
Dec 06 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命名空间(namespace)的动态访问及使用技巧
2014/08/18 PHP
JavaScript语句可以不以;结尾的烦恼
2007/03/08 Javascript
javascript getElementsByName()的用法说明
2009/07/31 Javascript
form表单action提交的js部分与html部分
2014/01/07 Javascript
JQuery+Ajax无刷新分页的实例代码
2014/02/08 Javascript
jquery validate表单验证的基本用法入门
2016/01/18 Javascript
使用JavaScript脚本判断页面是否在微信中被打开
2016/03/06 Javascript
一道关于JavaScript变量作用域的面试题
2016/03/08 Javascript
Bootstrap使用基础教程详解
2016/09/05 Javascript
基于JS实现9种不同的面包屑和分布式多步骤导航效果
2017/02/21 Javascript
详解angular用$sce服务来过滤HTML标签
2017/04/11 Javascript
JS常用正则表达式总结【经典】
2017/05/12 Javascript
基于substring()和substr()的使用以及区别(实例讲解)
2017/12/28 Javascript
javascript获取图片的top N主色值方法详解
2018/01/26 Javascript
浅析vue中的provide / inject 有什么用处
2019/11/10 Javascript
design vue 表格开启列排序的操作
2020/10/28 Javascript
[06:37]2014DOTA2国际邀请赛 昔日王者渴望重回巅峰
2014/07/12 DOTA
[42:39]老党炸弹人试玩视频
2014/09/03 DOTA
[01:19:54]DOTA2上海特级锦标赛主赛事日 - 2 败者组第二轮#1Alliance VS EHOME
2016/03/03 DOTA
[00:15]TI9观赛名额抽取
2019/07/10 DOTA
Python中的模块和包概念介绍
2015/04/13 Python
Python文件去除注释的方法
2015/05/25 Python
Python爬虫之xlml解析库(全面了解)
2017/08/08 Python
Python基于辗转相除法求解最大公约数的方法示例
2018/04/04 Python
python实现超市扫码仪计费
2018/05/30 Python
分享Python切分字符串的一个不错方法
2018/12/14 Python
Python3+Appium安装使用教程
2019/07/05 Python
python或C++读取指定文件夹下的所有图片
2019/08/31 Python
Python 统计位数为偶数的数字代码详解
2020/03/15 Python
Python远程方法调用实现过程解析
2020/07/28 Python
python合并多个excel文件的示例
2020/09/23 Python
美国最大的网络男装服装品牌:Bonobos
2017/05/25 全球购物
求职简历中个人的自我评价
2013/12/25 职场文书
英文求职信范文
2014/05/23 职场文书
2015年调度员工作总结
2015/04/30 职场文书
《乌鸦喝水》教学反思
2016/02/19 职场文书