代码:
var csMasterPrefix = 'CS_',
cpMasterPrefix = 'CP_',
csContentPrefix = 'CSContent_',
cpContentPrefix = 'CPContent_';
/* ... */
$this.attr("id")
.replace(csMasterPrefix,'')
.replace(cpMasterPrefix,'')
.replace(csContentPrefix,'')
.replace(cpContentPrefix,'')
.replace('ibtn','')
.replace('btn','')
.replace('lbtn','')
.replace('img','')
.toLowerCase();
问题:首先让我说一下,我已经查看了说明要创建您自己的“干净”函数的解决方案。我的问题实际上不是如何做到这一点,而是如何制作ONE 将所有替换调用合并为一个的正则表达式?
最佳答案
通过使用 RegExp
,选择运算符 |
和全局标志 g
:
var to_replace = [csMasterPrefix, ..., 'ibtn', ...];
var id = $this.attr("id").replace(new RegExp(to_replace.join('|'), 'g'), '');
不知道这是否是最有效的解决方案,但它会起作用。
或者,您可以遍历 to_replace
并进行正常的字符串替换。
关于Javascript .replace() 多次调用,一些带有变量,一些带有纯文本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5941185/