содержание страницы:
aa<b>1;2'3</b>hh<b>aaa</b>.. .<b>bbb</b> blabla..
я хочу получить результат:
1;2'3aaabbb
соответствует тегу <b> и </b>
<b>
</b>
как написать это регулярное выражение, используя JavaScript? спасибо!
Lazyanno * * 1002
Lazyanno
Если и только если :
SLaks
<script>...</script>
<!-- .. -->
... затем используйте:
var str = "aa<b>1;2'3</b>hh<b>aaa</b>..\n.<b>bbb</b>\nblabla.."; var match, result = "", regex = /<b>(.*?)<\/b>/ig; while (match = regex.exec(str)) { result += match[1]; } alert(result);
Выдает:
Вы не можете проанализировать HTML с помощью регулярных выражений .
Вместо этого вы должны использовать DOM Javascript.
Например (с использованием jQuery):
var text = ""; $('<div>' + htmlSource + '</div>') .find('b') .each(function() { text += $(this).text(); });
Я заключаю HTML в тег <div>, чтобы найти как вложенные, так и не вложенные <b> элементы.
<div>
var regex = /(<([^>]+)>)/ig; var bdy="aa<b>1;2'3</b>hh<b>aaa</b>..\n.<b>bbb</b>\nblabla.."; var result =bdy.replace(regex, ""); alert(result) ;
См .: http://jsfiddle.net/abdennour/gJ64g/
Вот пример без зависимости jQuery:
// get all elements with a certain tag name var b = document.getElementsByTagName("B"); // map() executes a function on each array member and // builds a new array from the function results... var text = b.map( function(element) { // ...in this case we are interested in the element text if (typeof element.textContent != "undefined") return element.textContent; // standards compliant browsers else return element.innerText; // IE }); // now that we have an array of strings, we can join it var result = text.join('');
Просто используйте «?» символ после создания шаблона для вашего внутреннего текста, если вы хотите использовать регулярные эксперименты. например:
".*" to "(.*?)"