var s= "this is inline $\alpha$, $$not$$";
如何将'$'
替换为'%%'
,而不是'$$'
。
这样输出
var s= "this is inline %%\alpha%%, $$not$$";
我在想
s.split('$').join('%%')
但我需要分成一美元而不是两美元。
答案 0 :(得分:9)
您可以使用回调和贪婪量词:
s.replace(/\$+/g, function(match) {
return match.length === 1 ? '%' : match;
});
答案 1 :(得分:3)
另一种方法:
.replace(/(^|[^$])\$([^$]|$)/g, "$1%%$2")
由于$
是唯一的,因此在它之前和之后应该没有$
,因此我们可以尝试在之前和之后匹配一个非$
字符,并将其替换回来替换字符串。