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