欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

JavaScript實(shí)現(xiàn)格式化字符串函數(shù)String.format

 更新時(shí)間:2016年12月16日 15:48:53   作者:天碼行空  
本文主要介紹了JavaScript實(shí)現(xiàn)格式化字符串函數(shù)String.format(可自動(dòng)解析引號(hào)轉(zhuǎn)義字符)。具有很好的參考價(jià)值,需要的朋友一起來(lái)看下吧

在js開(kāi)發(fā)中,我們可能會(huì)遇到這樣一個(gè)問(wèn)題

當(dāng)需要通過(guò)js動(dòng)態(tài)插入html標(biāo)簽的時(shí)候

特別是當(dāng)遇到大量的變量拼接、引號(hào)層層嵌套的情況,會(huì)出現(xiàn)轉(zhuǎn)義字符問(wèn)題,經(jīng)常出錯(cuò)

我們來(lái)看個(gè)例子

<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
 <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
 <title></title>
 <script>
 window.onload = function () {
 var id = '1';
 var code = 'zhangsan';
 var name = '張三';
 document.getElementById('test').innerHTML = '<a href="#" onclick="buttonClick(\"' + id + '\",\"' + code + '\">' + name + '</a>';
 }
 function buttonClick(id, code) {
 alert(id + '-' + code);
 }
 </script>
</head>
<body>
 <div id="test"></div>
</body>
</html>

運(yùn)行直接報(bào)錯(cuò)

接下來(lái)把轉(zhuǎn)義字符\"改成\'試下

運(yùn)行之后,發(fā)現(xiàn)仍然無(wú)法正常顯示

這樣的代碼不光看起來(lái)雜亂無(wú)章、難以維護(hù),關(guān)鍵是很容易出錯(cuò)

接下來(lái)我們開(kāi)始封裝格式化字符串方法

String.js

(function () {
 /// <summary>
 /// 引號(hào)轉(zhuǎn)義符號(hào)
 /// </summary>
 String.EscapeChar = '\'';
 /// <summary>
 /// 替換所有字符串
 /// </summary>
 /// <param name="searchValue">檢索值</param> 
 /// <param name="replaceValue">替換值</param> 
 String.prototype.replaceAll = function (searchValue, replaceValue) {
 var regExp = new RegExp(searchValue, "g");
 return this.replace(regExp, replaceValue);
 }
 /// <summary>
 /// 格式化字符串
 /// </summary>
 String.prototype.format = function () {
 var regexp = /\{(\d+)\}/g;
 var args = arguments;
 var result = this.replace(regexp, function (m, i, o, n) {
 return args[i];
 });
 return result.replaceAll('%', String.EscapeChar);
 }
})();

通過(guò)占位符傳遞變量值,用%替代了引號(hào)轉(zhuǎn)義符,代碼簡(jiǎn)潔了很多,也非常方便維護(hù),出錯(cuò)的機(jī)率也小了很多

<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
 <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
 <title></title>
 <script src="String.js"></script>
 <script>
 window.onload = function () {
 var id = '1';
 var code = 'zhangsan';
 var name = '張三';
 document.getElementById('test').innerHTML = '<a href="#" onclick="buttonClick(%{0}%,%{1}%)">{2}</a>'.format(id, code, name);
 }

 function buttonClick(id, code) {
 alert(id + '-' + code);
 }
 </script>
</head>
<body>
 <div id="test"></div>
</body>
</html>

看下測(cè)試效果

測(cè)試結(jié)果正確,并且點(diǎn)擊事件中也正確接收到了參數(shù)值

案例下載地址:http://xiazai.jb51.net/201612/yuanma/StringFormat_jb51.rar

以上就是本文的全部?jī)?nèi)容,希望本文的內(nèi)容對(duì)大家的學(xué)習(xí)或者工作能帶來(lái)一定的幫助,同時(shí)也希望多多支持腳本之家!

相關(guān)文章

  • D3.js的基礎(chǔ)部分之?dāng)?shù)組的處理數(shù)組的排序和求值(v3版本)

    D3.js的基礎(chǔ)部分之?dāng)?shù)組的處理數(shù)組的排序和求值(v3版本)

    這篇文章主要介紹了D3.js的基礎(chǔ)部分之?dāng)?shù)組的處理數(shù)組的排序和求值(v3版本) ,非常不錯(cuò),具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2019-05-05
  • Bootstrap每天必學(xué)之基礎(chǔ)排版

    Bootstrap每天必學(xué)之基礎(chǔ)排版

    Bootstrap每天必學(xué)之基礎(chǔ)排版,排版是學(xué)習(xí)的最基礎(chǔ)環(huán)節(jié),相當(dāng)于地基,所以大家一定要認(rèn)真對(duì)待,認(rèn)真學(xué)習(xí)本文內(nèi)容。
    2015-11-11
  • JavaScript中數(shù)組去重的5種方法

    JavaScript中數(shù)組去重的5種方法

    這篇文章主要介紹了JavaScript中數(shù)組去重的5種方法,文中講解非常詳細(xì),實(shí)例代碼幫助大家更好的理解和學(xué)習(xí),感興趣的朋友可以了解下
    2020-07-07
  • 如何將JavaScript將數(shù)組轉(zhuǎn)為樹(shù)形結(jié)構(gòu)

    如何將JavaScript將數(shù)組轉(zhuǎn)為樹(shù)形結(jié)構(gòu)

    我們經(jīng)常會(huì)碰到樹(shù)形數(shù)據(jù)結(jié)構(gòu),比方組織層級(jí)、省市縣或者者動(dòng)植物分類(lèi)等等數(shù)據(jù),那么如何將JavaScript將數(shù)組轉(zhuǎn)為樹(shù)形結(jié)構(gòu),本文就詳細(xì)的來(lái)了解一下
    2021-06-06
  • 淺析js實(shí)現(xiàn)網(wǎng)頁(yè)截圖的兩種方式

    淺析js實(shí)現(xiàn)網(wǎng)頁(yè)截圖的兩種方式

    這篇文章主要介紹了淺析js實(shí)現(xiàn)網(wǎng)頁(yè)截圖的兩種方式,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2019-11-11
  • JS實(shí)現(xiàn)網(wǎng)絡(luò)請(qǐng)求的三種方式梳理

    JS實(shí)現(xiàn)網(wǎng)絡(luò)請(qǐng)求的三種方式梳理

    本文主要為大家介紹了基于 XMLHttpRequest、Promise、async/await 等三種異步網(wǎng)絡(luò)請(qǐng)求的寫(xiě)法,文中的示例代碼講解詳細(xì),感興趣的可以學(xué)習(xí)一下
    2022-03-03
  • javascript創(chuàng)建元素和刪除元素實(shí)例小結(jié)

    javascript創(chuàng)建元素和刪除元素實(shí)例小結(jié)

    這篇文章主要介紹了javascript創(chuàng)建元素和刪除元素,結(jié)合實(shí)例形式總結(jié)分析了javascript針對(duì)頁(yè)面元素的動(dòng)態(tài)創(chuàng)建、刪除及子元素操作相關(guān)實(shí)現(xiàn)技巧,需要的朋友可以參考下
    2019-06-06
  • ES6中Set和Map數(shù)據(jù)結(jié)構(gòu)的簡(jiǎn)單講解

    ES6中Set和Map數(shù)據(jù)結(jié)構(gòu)的簡(jiǎn)單講解

    大家心里是否產(chǎn)生過(guò)這樣的疑問(wèn),JS中既然已經(jīng)有對(duì)象這種數(shù)據(jù)結(jié)構(gòu),我們?yōu)槭裁催€要再單獨(dú)去使用Set或者M(jìn)ap呢?下面這篇文章主要給大家介紹了關(guān)于ES6中Set和Map數(shù)據(jù)結(jié)構(gòu)的相關(guān)資料,需要的朋友可以參考下
    2022-08-08
  • 用Webpack構(gòu)建Vue項(xiàng)目的實(shí)踐

    用Webpack構(gòu)建Vue項(xiàng)目的實(shí)踐

    這篇文章主要介紹了用Webpack構(gòu)建Vue項(xiàng)目的實(shí)踐,小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧
    2017-11-11
  • 談?wù)勎覍?duì)JavaScript中typeof和instanceof的深入理解

    談?wù)勎覍?duì)JavaScript中typeof和instanceof的深入理解

    這次主要說(shuō)說(shuō)javascript的類(lèi)型判斷函數(shù)typeof和判斷構(gòu)造函數(shù)原型instanceof的用法和注意的地方,對(duì)本文感興趣的朋友一起看看吧
    2015-12-12

最新評(píng)論