1
var s= "this is inline $\alpha$, $$not$$";
我怎么能代替'$'
通过'%%'
但不是'$$'
。
使得输出
var s= "this is inline %%\alpha%%, $$not$$";
我想
s.split('$').join('%%')
但我需要只有一个而不是两个美元的分裂。
var s= "this is inline $\alpha$, $$not$$";
我怎么能代替'$'
通过'%%'
但不是'$$'
。
使得输出
var s= "this is inline %%\alpha%%, $$not$$";
我想
s.split('$').join('%%')
但我需要只有一个而不是两个美元的分裂。
你可以使用一个回调和贪婪量词:
s.replace(/\$+/g, function(match) {
return match.length === 1 ? '%' : match;
});
另一种方式来做到这一点:
.replace(/(^|[^$])\$([^$]|$)/g, "$1%%$2")
由于$
单独是,应该有之前和之后没有$
,所以我们可以尝试在之前和之后匹配一个非$
字符,并将它们替换回替换字符串中。
+1为第一种方法,但第二种方法在奇数大于$'的情况下会出现错误输出,或者临时替换出现在字符串中的其他位置。 – Vulcan 2013-04-29 18:36:22
@Vulcan:真的......我想我会删除那个:) – 2013-04-29 18:37:03