在JavaScript中,我在正则表达式上使用全局标志来替换字符串。代码如下。
var string = "$$";
string = string.replace(/\$+/g, '"\'$$\'"');
上面的代码会将$
替换为新字符串"'$$'"
。
是否可以获得匹配的$
的出现次数?例如,我想将$$$$
替换为"'$$$$$$$$'"
。为了做到这一点,我需要知道有四次出现。
答案 0 :(得分:6)
您可以捕获$
的数量并将其替换为两次:
string = string.replace(/\$+/g, '"\'$&$&\'"');
$&
取代了捕获的内容。
答案 1 :(得分:1)
你可以在替换方法中使用函数而不是字符串作为第二个参数,如下所示:
var string = '$$';
string = string.replace(/(\$+)/g, function(match, $1) { return $1+$1; })
有关替换方法的更多信息,请访问
https://developer.mozilla.org/en-US/docs/JavaScript/Reference/Global_Objects/String/replace