java字符串格式化函数_JavaScript实现格式化字符串函数String.format

在js开发中,我们可能会遇到这样一个问题

当需要通过js动态插入html标签的时候

特别是当遇到大量的变量拼接、引号层层嵌套的情况,会出现转义字符问题,经常出错

我们来看个例子

window.onload = function () {

var id = '1';

var code = 'zhangsan';

var name = '张三';

document.getElementById('test').innerHTML = '' + name + '';

}

function buttonClick(id, code) {

alert(id + '-' + code);

}

运行直接报错

ff22cb81e9066f90a97382e96d942613.png

接下来把转义字符\"改成\'试下

运行之后,发现仍然无法正常显示

这样的代码不光看起来杂乱无章、难以维护,关键是很容易出错

接下来我们开始封装格式化字符串方法

String.js

(function () {

///

/// 引号转义符号

///

String.EscapeChar = '\'';

///

/// 替换所有字符串

///

/// 检索值

/// 替换值

String.prototype.replaceAll = function (searchValue, replaceValue) {

var regExp = new RegExp(searchValue, "g");

return this.replace(regExp, replaceValue);

}

///

/// 格式化字符串

///

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);

}

})();

通过占位符传递变量值,用%替代了引号转义符,代码简洁了很多,也非常方便维护,出错的机率也小了很多

window.onload = function () {

var id = '1';

var code = 'zhangsan';

var name = '张三';

document.getElementById('test').innerHTML = '{2}'.format(id, code, name);

}

function buttonClick(id, code) {

alert(id + '-' + code);

}

看下测试效果

71e275e7ae5a454499b94656b2071d9f.png

测试结果正确,并且点击事件中也正确接收到了参数值

以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,同时也希望多多支持脚本之家!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值