用正则实现字符参数可配置化

作者:norion时间:2013年7月23日评论次数:0 条

在写javascript应用的时候,大家可能会遇到这样的问题,如果要动态输出一串字符串,然后在调用插件的时候要实现可配置化那么就比较不好实现了,例如,我要写一个tip的提示插件,而其中的文字是固定的,但是数字是变化的:

/*插件*/
var tip = function(o){
	var str = o.pageStatMessage + o.draggingMessage;
	console.log(str)
}

/*调用*/
tip({
	pageStatMessage:'共{total}条',
	draggingMessage:'{count}行'
})

那么,在console将会输出“共{total}条{count}行”,这样的字眼。那如果我要实现{total}和{count}动态输出,怎么办呢?有人说,我可以用拼接的方式,当然可以,但今天我不是要来将拼接的方式,转牛角尖的同学请绕行。

我在调用时,

/*调用*/
tip({
    total:1,
    count:2,
    pageStatMessage:'共{total}条,有',
    draggingMessage:'{count}行。'
})

只需要改变total和count,就可以动态输出我们想要的结果,怎么办呢?那么,我们可以用正则replace()方法替换就能实现我们所要的:

/*插件*/
var tip = function(o){
	var pageStatMessage = o.pageStatMessage || '共{total}条',
	    draggingMessage = o.draggingMessage || '{count}行',
	    str             = pageStatMessage + draggingMessage,
	    totalReg        = /{total}/,
	    countReg        = /{count}/;
		
	/*替换*/
	str = str.replace(totalReg, o.total);
	str = str.replace(countReg, o.count);
	console.log(str)
}

标签:

上一篇: 在淘宝的一次退货体验

下一篇:用splice删除数组元素容易忽略的问题

相关文章

评论

发表评论

电子邮件地址不会被公开。 必填项已用*标注