页内容:正则表达式:如何从标签内部获取内容(使用JavaScript)?
aa<b>1;2'3</b>hh<b>aaa</b>..
.<b>bbb</b>
blabla..
我想要得到的结果:
1;2'3aaabbb
匹配标签<b>
和</b>
如何使用JavaScript写这个正则表达式? 谢谢!
页内容:正则表达式:如何从标签内部获取内容(使用JavaScript)?
aa<b>1;2'3</b>hh<b>aaa</b>..
.<b>bbb</b>
blabla..
我想要得到的结果:
1;2'3aaabbb
匹配标签<b>
和</b>
如何使用JavaScript写这个正则表达式? 谢谢!
Lazyanno
,
当且仅当:
SLaks
的发布(如以及previous article he links to)和<b>
/</b>
标签或<b>
事件或内<script>...</script>
</b>
或评论<!-- .. -->
标签等)...然后使用:
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);
产地:
1;2'3aaabbb
You cannot parse HTML using regular expressions。
相反,您应该使用Javascript的DOM。
例如(使用jQuery):
var text = "";
$('<div>' + htmlSource + '</div>')
.find('b')
.each(function() { text += $(this).text(); });
我包裹在一个<div>
标记的HTML找到两个嵌套和非嵌套<b>
元件。
这里是一个没有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('');
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) ;
这一个适用于任何标签,正在寻找,谢谢 – Flion 2017-05-23 09:33:35
只需使用如果要使用Regular experssions,则在为内部文本生成模式之后的字符。例如: :
".*" to "(.*?)"
很酷! 谢谢! :))) – Koerr 2010-04-12 17:28:25
@lazyanno,在选择正则表达式或DOM解决方案之前(基于性能标准),确保**时间都**(**解析一个“代表性”字符串**两种方法几个次,在一个循环中,并查看**各种浏览器**上**的实际时机**)。 – vladr 2010-04-12 17:55:07