我被迫在客戶端解析一些HTML(是的,這真的是唯一的選擇在這種情況下),但我在Firefox有一些麻煩只與以下內容:問題解析與jQuery,正則表達式和Firefox的HTML
$('#Extensions').load('/advanced/admin/config.php?type=setup&display=extensions #container li'
,function(){
$('li').each(function(){
var liRow=$(this).html();
var reExten=/([0-9]+)/g;
var extension = liRow.match(reExten)[0]
var reName=/>([a-zA-z0-9\s]+ *)/g;
var matchName = reName.exec(liRow);
var name = matchName[1]
});
}
);
正從load
返回的HTML是沿着線的東西:
<a href="file.php?type=A&extension=1001">Test Extension <1001></a>
正則表達式似乎工作,如果你複製罰款並粘貼到Firefox的JS控制檯和代碼作爲一個整體在Internet Explorer 7/8/9中正常工作。
所以這裏是棘手的一點。在Firefox的matchName
在.each
的每一次迭代中爲空。從Firebug的輸出實例:
LOG: Matches: The Boss
LOG: data: <A href="file.php?type=A&extension=13">The Boss <13></A>
LOG: regex: />([a-zA-z0-9\s]+ *)/g;
LOG: Matches: Test Extension
LOG: data: <A href="file.php?type=A&extension=1001">Test Extension <1001></A>
LOG: regex: />([a-zA-z0-9\s]+ *)/g;
LOG: Matches: John Smith
LOG: data: <A href="file.php?type=A&extension=3801">John Smtih<3801></A>
LOG: regex: />([a-zA-z0-9\s]+ *)/g;
LOG: Matches: Guy Smiley
LOG: data: <A href="file.php?type=A&extension=3802">Guy Smiley <3802></A>
LOG: regex: />([a-zA-z0-9\s]+ *)/g;
LOG: Matches: 3803
LOG: data: <A href="file.php?type=A&extension=3803">Jane Doe <3803></A>
LOG: regex: /extdisplay=([0-9]+)/g
LOG: Matches: 3804
LOG: data: <A href="file.php?type=A&extension=3804">John Doe <3804></A>
LOG: regex: />([a-zA-z0-9\s]+ *)/g;
最後,這似乎只在str.match(re)
使用re.exec
,從不時發生。我目前處於全面虧損的狀態,現在已經開始了一個小時的工作,所以我希望這個問題能夠帶來某種意義!
我敢肯定它不是你想聽到的,因爲它不是一個解決問題的方法:不使用HTML的 – pinkfloydx33 2010-11-11 23:00:32
正則表達式的如果也能避免所有我會的!最奇怪的部分是,正則表達式的本身在我測試過的任何其他瀏覽器中都能正常工作,並且總是在for循環之外調用時......總之,Im難住了。 – HurnsMobile 2010-11-11 23:02:51
你如何生成這個日誌輸出?爲什麼在一個日誌行中正則表達式不同? – 2010-11-11 23:08:16