Javascript .replace() 具有多个调用,有些带有变量,有些带有纯文本

Javascript .replace() with multiple calls, some with variables, some with plain text

本文关键字:变量 文本 调用 replace Javascript      更新时间:2023-09-26

Code:

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

问:让我先说一下,我已经看过一些解决方案,这些解决方案说要使你自己的"干净"功能。 我的问题真的不是如何做到这一点,而是我怎样才能制作一个正则表达式,将所有替换调用合并为一个

通过使用

RegExp ,选择运算符|和全局标志g

var to_replace = [csMasterPrefix, ..., 'ibtn', ...];
var id = $this.attr("id").replace(new RegExp(to_replace.join('|'), 'g'), '');

不知道这是否是最有效的解决方案,但它会起作用。

或者,您可以遍历to_replace并进行正常的字符串替换。