2012-09-23 45 views
0

我有這個腳本,將取代"a字符與\"\a如何在正則表達式中處理(轉義)字符?

'"replace'.replace(/"|a/g, "\\$&"); 

將導致:\"repl\ace

現在我需要的是與\\更換\(轉義字符)。但嘗試下面的代碼失敗,在Chrome控制檯中的例外SyntaxError: Invalid regular expression: missing /

'"re\place'.replace(/"|a|\/g, "\\$&"); 

替換正則表達式中的轉義字符(使用Javascript)有什麼可能的解決方法?

更新

簡化PBLM,爲什麼「代表\ lace'.toString()結果 '替代' 而不是 '代表\花邊'?

關於一樣,我嘗試了這些代碼,

  1. "re\nlace".toString();結果re換行符lace
  2. "re\xlace".toString();結果SyntaxError: Unexpected token ILLEGAL。可能因爲\ x不可執行。

我覺得Javascript正在執行字符串值。但爲了什麼?

+0

你沒嘗試\\逃跑\ ?? –

回答

1
'"replace'.replace(/"|a|\\/g, "\\$&"); 
1

最後\逃脫最後/,你應該逃避它讓你的正則表達式看起來像

'"replace'.replace(/"|a|\\/g, "\\$&"); 
0

問題#1
\需要在正則表達式進行轉義:

"re\place".replace(/a|\\/g,"\\$&"); 
repl\ace 

問題#2
個這"\"""直接輸入結果 - \需要再次進行轉義:

"re\\place".replace(/a|\\/g,"\\$&"); 
re\\pl\ace 

的一點是,一個\說:在這裏,我們有一個特殊字符。
\n - >新行
\\ - >\
\x - >錯誤,因爲X沒有定義爲別的

換句話說一個字符:如果要鍵入"re\nlace".toString();然後在字符串中
你必須鍵入"re\\nlace".toString();

也許這可以幫助你:http://en.wikipedia.org/wiki/Escape_character

+0

@米歇爾..我怕這不會..你已經告訴逃跑,但實際上並沒有逃到那裏。 –

+0

@RohitJain我通過手機回答了問題,所以我現在切換到桌面來糾正它。但你已經做到了,所以謝謝;-) – mzimmer

+0

我可以理解..我沒有這樣做..你可以看到名字是誰做的.. –

相關問題