我發現了下面的表達式,用於修改克隆的html元素的id,例如改變contactDetails[0]
到contactDetails[1]
:幫助解釋一個javascript正則表達式
var nel = 1;
var s = $(this).attr(attribute);
s.replace(/([^\[]+)\[0\]/, "$1["+nel+"]");
$(this).attr(attribute, s);
我並不十分熟悉的正則表達式,但試圖解釋它,並用The Regex Coach幫助不過我還在掙扎。看起來([^\[]+)
匹配一個或多個不是'[
'的字符和\[0\]/
匹配[0]
。中間的/
我解釋爲'包含兩個',所以我不明白爲什麼作者甚至包含了第一個表達式。
我不明白什麼替換字符串中的$ 1,如果我使用正則表達式教練替換功能,如果我只是使用[0]作爲搜索和1作爲替換我得到正確的結果,但是,如果我更改javascript到s.replace(/\[0\]/, "["+nel+"]");
字符串s保持不變。
感謝您對原創作者的意圖給予的任何建議,並幫助您找到解決方案,該解決方案將成功替換搜索字符串中任何位置的方括號中的數字。
謝謝,我現在明白了,因此明白這應該是工作,但事實並非如此。我已經提取了這段代碼,並改變了設置var s = ContactData [0],我已經把它放到腳本塊中的vanila html文件中,但是在替換s沒有改變之後。任何想法發生了什麼? – Richbits 2009-07-17 14:06:55
當你說`s = ContactData [0]`時,你的意思是`s =「ContactData [0]」`對嗎?它的內容是「ContactData [0]」而不是「ContactData [0]`數組的索引0處的值? – 2009-07-17 14:12:31