希望逃避所有出現的「。」。和 「:」 方括號內,無法替換()使用子匹配
[ab:1.2:ef]='12.3' => [ab\:1\.2\:ef]='12.3'
嘗試不同的排列上replace
,例如,
str.replace(/(\[.*)(\.|:)(.*\])/g, '\1\\\2\3');
,但沒有喜悅。
這兩個答案正確,更多。
首先,純模式匹配,完成工作,非常簡潔。在我看來,它更好地回答了陳述的問題。
第二個,調用replace
帶有一個函數arg,稍微有點強壯,並且提供了更多的靈活性。在我的代碼中使用這種方法,因爲它可以輕鬆處理一些特殊情況。
很好的解釋。讓我感到驚訝的是,你並不擔心領導支架(因爲它必須在那裏) - 使匹配更加複雜。 –
這不需要打開和關閉大括號。因此,它不適用於:[[ab:1.2:ef] ='12.3]'或'ab:1.2:ef] ='12.3'。 – jfriend00
對,這就是爲什麼我寫了括號必須正確平衡(JavaScript不支持後向斷言)。我應該補充一點,這也涉及到字符串中的括號,註釋等。 –