格式化字符串拼接與format函數應用

字符串格式化html

// 讓人難以理解的拼接:    
    var str = '<div id="' + id + '" class=" + className + ">' + html + '</div>';
// 使用格式化:
    var tpl = '<div id="${0}" class="${1}">${2}</div>',
        str = baidu.format(tpl,
                           id,
                           className,
           ...
String.prototype.format = function (args) {
        if (arguments.length > 0) {//參數大於0
            var result = this;//result=當前調用的對象

            if (arguments.length == 1 && typeof (args) == "object") {//只有一個參數傳入
                for (var key in args) {
                    var reg = new RegExp("({" + key + "})", "g");//正則匹配全部
/*
*replace() 方法用於在字符串中用一些字符替換另外一些字符,或替換一個與正則表達式匹配的子串。
*語法
*    stringObject.replace(regexp/substr,replacement)
*regexp/substr	
*    必需。規定子字符串或要替換的模式的 RegExp 對象。
*    請注意,若是該值是一個字符串,則將它做爲要檢索的直接量文本模式,而不是首先被轉換爲             *    RegExp對象。
*    replacement必需。一個字符串值。規定了替換文本或生成替換文本的函數。
*/      result = result.replace(reg, args[key]);
                }
            }
            else {
                for (var i = 0; i < arguments.length; i++) {
                    if (arguments[i] == undefined) {
                        return "";
                    }
                    else {
                        var reg = new RegExp("({[" + i + "]})", "g");
                        result = result.replace(reg, arguments[i]);
                    }
                }
            }
            return result;
        }
        else {
            return this;
        }
    };

上是formatd代碼,將參數字符串參數轉化爲對象 進行格式化拼接正則表達式

下面是調用方法函數

//兩種調用方式
   var template1="我是{0},今年{1}了";
   var template2="我是{name},今年{age}了";
   var result1=template1.format("lilei1111",22);
   var result2=template2.format({name:"lilei",age:22});
  //兩個結果都是"我是loogn,今年22了"

字符串格式化話拼接以下:this

var tpl = '<div id="{0}" class="{1}">{2}</div>',
            str =tpl.format(
                    "d1",
                    "play-btn",
                    "<i>這是i</i>");
   document.write(str);
var tpl = '<div id="{id}" class="{class}">{text}</div>',
            str =tpl.format(
                    {id:"d1",
                    class:"play-btn",
                    text:"<i>這是i</i>"});
    document.write(str);
相關文章
相關標籤/搜索