收藏一個JavaScript字串串連方法

來源:互聯網
上載者:User

最近在看一同事寫的代碼時,有一個字串用了一堆"+"號,看了半天沒明天到底會輸出什麼樣的內容,就想到用字串串連的類,把以前的方法寫成了類的方式,方便調用。下面的類支援執行個體調用和靜態調用,參數可以是單獨的字串,或者json的格式,或者類似參數數組的方式,見下面樣本:

/*** @class String concat* @return {StrBuf/String}* @constructor* eg:var buf = new StrBuf("contructor str\n");buf.push("hello,").push("Today is {0}, {1}", "Monday", "March 28th").push("${name} is a good ${category} company", {name: "Google", category: "Intenet"});document.write(buf);// auto call toString methodconsole.log(buf);console.log(StrBuf("static {0} method", "invoke"));*/var StrBuf = function(s) {this.data = [];if(s) {var args = arguments, buf;if(this instanceof StrBuf) {this.push.apply(this, args);}else {// static invokebuf = new StrBuf();return buf.push.apply(buf, args).toString();}}};StrBuf.prototype = {// add String to the instancepush: function(s, j) {var args = arguments;if(args.length < 2) {this.data.push(s || "");}else if(typeof j == 'object') {this.data.push(s.replace(/\$\{([\w.]+)\}/g, function($, $1) {return ($1 in j) ? j[$1] : $;}));}else {this.data.push(s.replace(/\{(\d+)\}/g, function($, $1) {return args[+$1 + 1];}));}return this;},toString: function() {return this.data.join("");}};

調用樣本如下:

var buf = new StrBuf("contructor str\n");buf.push("hello,");    buf.push("Today is {0}, {1}", "Monday", "March 28th");    buf.push("${name} is a good ${category} company", {name: "Google", category: "Intenet"});    document.write(buf);// auto call toString method    console.log(buf);    console.log(StrBuf("static {0} method", "invoke"));

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.