我有具有JavaScript變量值JavaScript的正則表達式多次出現
var ull="<ul><li>sunil here from mandya </li><li>kumar here</li></ul>"
我想從mandya 第二警報消息=庫馬爾這裏
每個列表內容如下面 第一警報消息=蘇尼這裏的警告消息的輸出如何用正則表達式完成此任務,請幫助我,我是新手
我有具有JavaScript變量值JavaScript的正則表達式多次出現
var ull="<ul><li>sunil here from mandya </li><li>kumar here</li></ul>"
我想從mandya 第二警報消息=庫馬爾這裏
每個列表內容如下面 第一警報消息=蘇尼這裏的警告消息的輸出如何用正則表達式完成此任務,請幫助我,我是新手
更好的選擇是使用JQuery(或者只是DOM調用),而不是嘗試使用正則表達式解析HTML。此外,您應該考慮不向用戶發送一系列alert()模式對話框,這對很多用戶來說都是非常煩人的。
var str = '<ul><li>sunil here from mandya </li><li>kumar here</li></ul>';
var haystack = str;
var match = haystack.match(/<li>(.+?)<\/li>/);
while (match) {
alert(match[1]);
haystack = haystack.slice(match[0].length);
match = haystack.match(/<li>(.+?)<\/li>/);
}
當然,如果HTML實際上在頁面上,那麼遍歷DOM會好得多。
不建議在HTML上使用正則表達式。 XML解析器會更好。甚至比使用JavaScript更好。這將輸出你在找什麼
var li = document.getElementsByTagName('li');
var liLength = li.length;
for(i=0;i<liLength;i++){
if(document.all){ //IE
alert(li[i].innerText);
}else{ //Firefox
alert(li[i].textContent);
}
}
的替代,這將不是寫這些東西可以更好地支持自己是使用一個JavaScript框架,如jQuery(如richardtallent建議)。
你最好能夠做的東西在一個更詳細的方式,如:
$('li').each(function(){
alert($(this).text());
});
Don't use regex to parse html
,使用解析器而不是
var p = new DOMParser();
var ul = p.parseFromString("<ul><li>sunil here from mandya </li>" +
"<li>kumar here</li></ul>", "text/xml");
var lis = ul.getElementsByTagName("li");
var len = lis.length;
for(var i = 0; i < len; i++)
alert(lis[i].firstChild.nodeValue);