регулярное выражение javascript - PullRequest
0 голосов
/ 02 февраля 2010

У меня есть переменная JavaScript, имеющая значение

var ull="<ul><li>sunil here from mandya </li><li>kumar here</li></ul>"

Я хочу выводить предупреждающее сообщение для каждого содержимого списка, как показано ниже 1-е предупреждающее сообщение = sunil здесь от mandya 2-е предупреждающее сообщение = kumar здесь

как это сделать с помощью регулярных выражений, пожалуйста, помогите ,, я новичок в этом

Ответы [ 4 ]

2 голосов
/ 02 февраля 2010

Не рекомендуется использовать регулярные выражения в 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());
}); 
1 голос
/ 02 февраля 2010

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);
0 голосов
/ 02 февраля 2010
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.

0 голосов
/ 02 февраля 2010

Лучше было бы использовать JQuery (или просто вызовы DOM), а не пытаться анализировать HTML с помощью регулярных выражений.

Кроме того, не рекомендуется отправлять пользователям серию модальных диалоговых окон alert (), которые могут быть очень раздражающими для многих пользователей.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...