2014-01-23 67 views
0

我想用JS(和正則表達式?),以取代所有&&放大器;,但都涉及到正則表達式替換&但不< and >

&amp;gt; 

&amp;lt; 

任何人都可以請幫助那些&字符? :) 提前致謝!

+0

你說''>什麼是不應該被取代? –

+0

你有什麼嘗試?如果你在尋求答案之前有什麼先行的話,這會有所幫助。 – Travis

+0

@ KendallFrey的回答很好。你的意思是你想替換所有'&'而不是替換'<'和'>'?如果是這樣,你可以試試這個:'/&(?! lt \ b | gt \ b)/ gi' –

回答

2

你可以使用像一個正則表達式:

&(?!amp;|gt;|lt;) 

JS例如:

"test &amp; &gt; &lt; and & with &foo;".replace(/&(?!amp;|gt;|lt;)/gi, "&amp;"); 

結果:

"test &amp; &gt; &lt; and &amp; with &amp;foo;" 
+0

非常感謝@Qtax! – Helge

3

簡單的辦法是檢查字母和分號後的&

/&(?![A-Z]+;)/gi 

一個完整的符合標準的版本,還檢查數字代碼:

/&(?!([A-Za-z]+|#\d+|#x[\da-fA-F]+);)/g