Javascript拆分为$,但不包括$$

时间:2013-04-29 18:27:39

标签: javascript regex

var s= "this is inline $\alpha$, $$not$$";

如何将'$'替换为'%%',而不是'$$'

这样输出

var s= "this is inline %%\alpha%%, $$not$$";

我在想

s.split('$').join('%%')

但我需要分成一美元而不是两美元。

2 个答案:

答案 0 :(得分:9)

您可以使用回调和贪婪量词:

s.replace(/\$+/g, function(match) {
    return match.length === 1 ? '%' : match;
});

答案 1 :(得分:3)

另一种方法:

.replace(/(^|[^$])\$([^$]|$)/g, "$1%%$2")

由于$是唯一的,因此在它之前和之后应该没有$,因此我们可以尝试在之前和之后匹配一个非$字符,并将其替换回来替换字符串。