JavaScript实现格式化字符串函数String.format
网络编程 2021-07-04 19:19www.168986.cn编程入门
本文主要介绍了JavaScript实现格式化字符串函数String.format(可自动解析引号转义字符)。具有很好的参考价值,需要的朋友一起来看下吧
在js开发中,我们可能会遇到这样一个问题
当需要通过js动态插入html标签的时候
特别是当遇到大量的变量拼接、引号层层嵌套的情况,会出现转义字符问题,经常出错
我们来看个例子
<!DOCTYPE html> <html xmlns="http://.w3./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://.w3./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>
看下测试效果
测试结果正确,并且点击事件中也正确接收到了参数值
地址
以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,也希望多多支持狼蚁SEO!
编程语言
- 宿迁百度关键词排名指南:实现精准营销的关键
- 四川SEO优化怎么做网络推广
- 立昂技术备案老域名收购:如何为您的业务赋能
- 安徽百度关键词seo贵不贵,一般需要多少钱
- 吉林百度快照排名怎么做电话营销
- 多伦新手做SEO怎么做
- 甘肃优化关键词排名推广怎么做论坛营销
- 沙雅SEO网站推广:提升您的在线可见性
- 四川SEO优化如何提升销售额和销售量
- 聂荣网站排名优化:提升网站可见性的全方位指
- 涞水SEO:提升地方企业在线可见性的策略
- 辽宁百度seo排名怎样做网站排名
- 临湘哪有关键词排名优化:提升网站可见度的关
- 黑龙江百度网站优化有没有优惠
- 凉城优化关键词排名推广:提升您的网络可见性
- 萝北整站优化:提升您网站流量和排名的全面指