日期:2014-05-16  浏览次数:20406 次

原生JavaScript技巧大收集
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 |