国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > JavaScript > 正文

JavaScript實現格式化字符串函數String.format

2019-11-19 18:26:07
字體:
來源:轉載
供稿:網友

在js開發中,我們可能會遇到這樣一個問題

當需要通過js動態插入html標簽的時候

特別是當遇到大量的變量拼接、引號層層嵌套的情況,會出現轉義字符問題,經常出錯

我們來看個例子

<!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>

運行直接報錯

接下來把轉義字符/"改成/'試下

運行之后,發現仍然無法正常顯示

這樣的代碼不光看起來雜亂無章、難以維護,關鍵是很容易出錯

接下來我們開始封裝格式化字符串方法

String.js

(function () { /// <summary> /// 引號轉義符號 /// </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); }})();

通過占位符傳遞變量值,用%替代了引號轉義符,代碼簡潔了很多,也非常方便維護,出錯的機率也小了很多

<!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>

看下測試效果

測試結果正確,并且點擊事件中也正確接收到了參數值

案例下載地址:http://xiazai.VeVB.COm/201612/yuanma/StringFormat_jb51.rar

以上就是本文的全部內容,希望本文的內容對大家的學習或者工作能帶來一定的幫助,同時也希望多多支持武林網!

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 武安市| 新野县| 什邡市| 林口县| 平陆县| 庄浪县| 三台县| 宜州市| 台湾省| 安宁市| 卢氏县| 永清县| 简阳市| 沧州市| 成安县| 正安县| 偏关县| 泸西县| 玉田县| 长葛市| 房产| 西昌市| 江山市| 孟村| 蓬溪县| 波密县| 涟源市| 麦盖提县| 芮城县| 常山县| 襄汾县| 治多县| 丹棱县| 永定县| 达日县| 龙南县| 社会| 天台县| 福安市| 黄浦区| 峡江县|