首页 > Web开发 > 详细

常用的 js 代码梳理

时间:2016-06-18 02:10:28      阅读:232      评论:0      收藏:0      [点我收藏+]
/**
* 格式化时间函数
* @param {format} 时间显示格式
*/
Date.prototype.format = function (format) {
    var date = {
        "M+": this.getMonth() + 1,
        "d+": this.getDate(),
        "h+": this.getHours(),
        "m+": this.getMinutes(),
        "s+": this.getSeconds(),
        "q+": Math.floor((this.getMonth() + 3) / 3),
        "S+": this.getMilliseconds()
    };
    if (/(y+)/i.test(format)) {
        format = format.replace(RegExp.$1, (this.getFullYear() + ‘‘).substr(4 - RegExp.$1.length));
    }
    for (var k in date) {
        if (new RegExp("(" + k + ")").test(format)) {
            format = format.replace(RegExp.$1, RegExp.$1.length == 1 ? date[k] : ("00" + date[k]).substr(("" + date[k]).length));
        }
    }
    return format;
};
String.prototype.format = function (args) {
    if (arguments.length > 0) {
        var result = this;
        if (arguments.length == 1 && typeof (args) == "object") {
            for (var key in args) {
                var reg = new RegExp("({" + key + "})", "g");
                result = result.replace(reg, args[key]);
            }
        }
        else {
            for (var i = 0; i < arguments.length; i++) {
                if (arguments[i] == undefined) {
                    result = result.replace(reg, arguments[i]);
                }
                else {
                    var reg = new RegExp("({[" + i + "]})", "g");
                    result = result.replace(reg, arguments[i]);
                }
            }
        }
        return result;
    }
    else {
        return this;
    }
}
String.prototype.trim = function () {
    return this.replace(/(^\s*)|(\s*$)/g, ‘‘)
};
function StringBuilder() {
    this.__values = new Array();
};
StringBuilder.prototype.appendLine = function (v) {
    this.__values.push(v);
}
StringBuilder.prototype.toString = function () {
    return this.__values.join(‘‘);
}
Number.prototype.toFixed = function (d) {
    var s = this + "";
    if (!d) d = 0;
    if (s.indexOf(".") == -1) s += ".";
    s += new Array(d + 1).join("0");
    if (new RegExp("^(-|\\+)?(\\d+(\\.\\d{0," + (d + 1) + "})?)\\d*$").test(s)) {
        var s = "0" + RegExp.$2, pm = RegExp.$1, a = RegExp.$3.length, b = true;
        if (a == d + 2) {
            a = s.match(/\d/g);
            if (parseInt(a[a.length - 1]) > 4) {
                for (var i = a.length - 2; i >= 0; i--) {
                    a[i] = parseInt(a[i]) + 1;
                    if (a[i] == 10) {
                        a[i] = 0;
                        b = i != 1;
                    }
                    else break;
                }
            }
            s = a.join("").replace(new RegExp("(\\d+)(\\d{" + d + "})\\d$"), "$1.$2");
        }
        if (b) s = s.substr(1);
        return (pm + s).replace(/\.$/, "");
    }
    return this + "";
}
//限制只能键入数字,flage:是否验证‘.’传入则不可以输入‘.’
function entNumber(e, flage) {
    e = e || window.event;
    var keyCode = e.keyCode || e.which;
    if (!(keyCode == 46) && !(keyCode == 8) && !(keyCode == 37) && !(keyCode == 39) && !(keyCode == 17)  && !(keyCode == 13) && ctrlKey()) {
        if (!((keyCode >= 48 && keyCode <= 57) || (keyCode == 110 || keyCode == 190) || keyCode == 9 || (keyCode >= 96 && keyCode <= 105))) stopDefault(e);
        if (flage) if (!((keyCode >= 48 && keyCode <= 57) || keyCode == 9 || (keyCode >= 96 && keyCode <= 105))) stopDefault(e);
    }
    //ctrl+c/v/a/x/z
    function ctrlKey() {
        return !(e.ctrlKey && keyCode == 67) && !(e.ctrlKey && keyCode == 86) && !(e.ctrlKey && keyCode == 65) && !(e.ctrlKey && keyCode == 88) && !(e.ctrlKey && keyCode == 90)
    }
}
function getKeyCode(e) {
    e = e || window.event;
    return e.keyCode || e.which;
}
//阻止浏览器的默认行为
function stopDefault(e) {
    e = e || window.event;
    if (e.preventDefault) e.preventDefault(); //其他浏览器
    else e.returnValue = false; //IE浏览器
}
/**
* 阻止事件(包括冒泡和默认行为)
* */
function stopEvent(e) {
    e = e || window.event;
    if (e.preventDefault) { //其他浏览器
        e.preventDefault();
        e.stopPropagation();
    } else { //IE浏览器
        e.returnValue = false;
        e.cancelBubble = true;
    }
};

//过滤HTML标签
String.prototype.removeHtmlTab = function () {
    return this.replace(/<[^<>]+?>/g, ‘‘);
}
//HTML标签字符转换成转意符
String.prototype.html2Escape = function () {
    return this.replace(/[<>&"]/g, function (c) { return { ‘<‘: ‘&lt;‘, ‘>‘: ‘&gt;‘, ‘&‘: ‘&amp;‘, ‘"‘: ‘&quot;‘}[c]; });
}
//转意符换成HTML标签
String.prototype.escape2Html = function () {
    var arrEntities = { ‘lt‘: ‘<‘, ‘gt‘: ‘>‘, ‘nbsp‘: ‘ ‘, ‘amp‘: ‘&‘, ‘quot‘: ‘"‘ };
    return this.replace(/&(lt|gt|nbsp|amp|quot);/ig, function (all, t) { return arrEntities[t]; });
}
//&nbsp;转成空格
String.prototype.nbsp2Space = function () {
    var arrEntities = { ‘nbsp‘: ‘ ‘ };
    return this.replace(/&(nbsp);/ig, function (all, t) { return arrEntities[t] })
}
//回车转为br标签
String.prototype.return2Br = function () {
    return this.replace(/\r?\n/g, "<br />");
}

/**
* 移除数组中的空元素
* @param {array} 数组
* @returns {narray} 新数组
* */
Array.prototype.trimArray = function () {
    var array = this;
    var narray = [];
    for (var i = 0; i < array.length; i++)

        if (array[i]) {
            if (typeof array[i] == "string") {
                if (array[i].trim())
                    narray.push(array[i]);
            } else {
                narray.push(array[i]);
            }
        }
    return narray;
}; 
/**
* 移除数组中的指定元素
* @param {elm} 指定元素值
* @returns {narray} 新数组
* */
Array.prototype.remove = function (elm) {
    for (var i = 0; i < this.length; i++) {
        if (this[i] == elm)
            this[i] == ‘‘;
        break;
    }
    return this.trimArray(); //清除空元素
};
/**
* 去除数组中重复的元素
* @param {isStrict} 是否严格模式
* [‘1‘,1] isStric=true 返回1,否则,返回1,1
* @returns {Array}
* */
Array.prototype.unique = function (isStrict) {
    if (!this.length) return [];
    if (this.length < 2) return [this[0]] || [];
    var tempObj = {},
			newArr = [];
    for (var i = 0; i < this.length; i++) {
        var v = this[i];
        var condition = isStrict ? (typeof tempObj[v] != typeof v) : false;
        if ((typeof tempObj[v] == "undefined") || condition) {
            tempObj[v] = v;
            newArr.push(v);
        }
    }
    return newArr;
};
/**
* 统计元素在数组中出现的次数
* @param {array} 数组
* [‘1‘,1] isStric=true 返回1,否则,返回1,1
* @returns {Array} 返回一个二维数组::["元素名","出现的次数"]
* */
Array.prototype.sameCount = function () {
    var res = [];
    var ary = this;
    ary.sort();
    for (var i = 0; i < ary.length; ) {
        var count = 0;
        for (var j = i; j < ary.length; j++) {
            if (ary[i] == ary[j]) {
                count++;
            }
        }
        res.push([ary[i], count]);
        i += count;
    }
    return res;
}


?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

常用的 js 代码梳理

原文:http://vb2005xu.iteye.com/blog/2305462

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!