我從textarea(除了簡單的文本可能包含html標記)獲取內容,並試圖解析它並用字符串替換所有「[File:#xx#]」的出現包含在一個數組中。 因此,可以說textarea的內容在var html
。
我做到以下幾點:javascript正則表達式 - 全局替換問題
<img src="[File:#111#]" alt="image1" />
<img src="[File:#222#]" />
但當有2個元素女巫之間沒有斷行與[File:#xx#]
值都屬性:當內容的文本區域都是這樣
html = html.replace(/\[File:#(.*)#\]/g,
function($0, $1){ return furls[$1]; });
一切工作正常,那麼問題就出現了。
因此,考慮到這是textarea的值:
<img src="[File:#111#]" alt="image1" /><img src="[File:#222#]" />
好像它matces第一IMG的[File:#111#
但關閉它不與第一支架,Rathen市的比第二的。所以,被取代的是所有這些:
#]" alt="image1" /><img src="[File:#222
我的正則表達式有什麼問題?我怎樣才能防止這種先行發生,並停止在第一個左括號?
在此先感謝。
非常感謝Bogdan的回覆。對於我目前需要的東西就足夠了,但是如果我需要支持任何字符,如'[File:#http://test.com/file1?a = 1&b = 2#]' – CrisDeBlonde 2012-03-30 14:44:37
如果您想添加其他字符在你的搜索中,你可以得到如下的正則表達式:/[File:#[\w=&?/.]+#]/g這將與你在評論 – 2012-03-30 14:46:44
cool中提供的例子相匹配!再次感謝廣泛的幫助! – CrisDeBlonde 2012-03-30 14:48:42