1. 程式人生 > >js 對象常用擴展

js 對象常用擴展

cond lse gets ring 長度 amp replace tor var

//js string對象擴展
(function() {
    // 除去兩邊空白 
    String.prototype.trim = function() {
        return this.replace(/(^\s*)|(\s*$)/g, "");
    };
    //截取字符串了 
    String.prototype.cutStr = function(len) {
        var str = this;
        var str_length = 0;
        var str_len = 0;
        str_cut = new String();
        str_len 
= str.length; for (var i = 0; i < str_len; i++) { a = str.charAt(i); str_length++; if (escape(a).length > 4) { //中文字符的長度經編碼之後大於4 str_length++; } str_cut = str_cut.concat(a); if (str_length >= len) { str_cut
= str_cut.concat("..."); return str_cut; } } //如果給定字符串小於指定長度,則返回源字符串; if (str_length < len) { return str; } }; // 保留中文 String.prototype.getCn = function() { return this.replace(/[u4e00-u9fa5uf900-ufa2d]/g, ""); };
// 保留數字 String.prototype.getNum = function() { return this.replace(/[^\d]/g, ""); }; // 保留字母 String.prototype.getEn = function() { return this.replace(/[^A-Za-z]/g, ""); }; //從右邊截取,到終點字符位置 String.prototype.subIndexStr = function(str) { var index = this.indexOf(str); return this.substr(0, index); }; // 從左截取指定長度的字串 String.prototype.left = function(n) { return this.slice(0, n); }; // 從右截取指定長度的字串 String.prototype.right = function(n) { return this.slice(this.length - n); }; // HTML編碼 String.prototype.HTMLEncode = function() { var re = this; var q1 = [/x26/g, /x3C/g, /x3E/g, /x20/g]; var q2 = ["&", "<", ">", " "]; for (var i = 0; i < q1.length; i++) re = re.replace(q1[i], q2[i]); return re; }; //字符串轉換為日期格式 String.prototype.toDate = function() { if (isNaN(this) && !isNaN(Date.parse(this))) {   return new Date(this); } else { console.error(this == null ? "不是日期格式" : this + "不是日期格式") } }; //左邊補零 String.prototype.padLeftZero = function(n) { return Array(n > this.length ? (n - (‘‘ + this).length + 1) : 0).join(0) + this; }; //右邊補零 String.prototype.padRightZero = function(n) { return this + Array(n > this.length ? (n - (‘‘ + this).length + 1) : 0).join(0); }; //轉換人民幣格式 String.prototype.toRenminbi = function() { var n = this.replace(/,/g, ‘‘);; var fraction = [‘角‘, ‘分‘]; var digit = [‘零‘, ‘壹‘, ‘貳‘, ‘叁‘, ‘肆‘, ‘伍‘, ‘陸‘, ‘柒‘, ‘捌‘, ‘玖‘]; var unit = [ [‘元‘, ‘萬‘, ‘億‘], [‘‘, ‘拾‘, ‘佰‘, ‘仟‘] ]; var head = n < 0 ? ‘欠‘ : ‘‘; n = Math.abs(n); var s = ‘‘; for (var i = 0; i < fraction.length; i++) { s += (digit[Math.floor(n * 10 * Math.pow(10, i)) % 10] + fraction[i]).replace(/零./, ‘‘); } s = s || ‘整‘; n = Math.floor(n); for (var i = 0; i < unit[0].length && n > 0; i++) { var p = ‘‘; for (var j = 0; j < unit[1].length && n > 0; j++) { p = digit[n % 10] + unit[1][j] + p; n = Math.floor(n / 10); } s = p.replace(/(零.)*零$/, ‘‘).replace(/^$/, ‘零‘) + unit[0][i] + s; } return head + s.replace(/(零.)*零元/, ‘元‘).replace(/(零.)+/g, ‘零‘).replace(/^整$/, ‘零元整‘); }; String.prototype.amountFormat = function() { var number = this; var decimals = 2; number = (number + ‘‘).replace(/[^0-9+-Ee.]/g, ‘‘); var n = !isFinite(+number) ? 0 : +number, prec = !isFinite(+decimals) ? 0 : Math.abs(decimals), sep = (typeof thousands_sep === ‘undefined‘) ? ‘,‘ : thousands_sep, dec = (typeof dec_point === ‘undefined‘) ? ‘.‘ : dec_point, s = ‘‘, toFixedFix = function(n, prec) { var k = Math.pow(10, prec); return ‘‘ + Math.floor(n * k) / k; }; s = (prec ? toFixedFix(n, prec) : ‘‘ + Math.floor(n)).split(‘.‘); var re = /(-?\d+)(\d{3})/; while (re.test(s[0])) { s[0] = s[0].replace(re, "$1" + sep + "$2"); } if ((s[1] || ‘‘).length < prec) { s[1] = s[1] || ‘‘; s[1] += new Array(prec - s[1].length + 1).join(‘0‘); } return s.join(dec); }; })(); //js Date 時間對象擴展 (function() { Date.prototype.toString = function(fmt) { function padLeftZero(str) { return (‘00‘ + str).substr(str.length); } if (/(y+)/.test(fmt)) { fmt = fmt.replace(RegExp.$1, (this.getFullYear() + ‘‘).substr(4 - RegExp.$1.length)); } let o = { ‘M+‘: this.getMonth() + 1, ‘d+‘: this.getDate(), ‘h+‘: this.getHours(), ‘m+‘: this.getMinutes(), ‘s+‘: this.getSeconds() }; for (let k in o) { if (new RegExp(`(${k})`).test(fmt)) { let str = o[k] + ‘‘; fmt = fmt.replace(RegExp.$1, (RegExp.$1.length === 1) ? str : padLeftZero(str)); } } return fmt; } })();

js 對象常用擴展