我是正则表达式的新手,我正在尝试创建不同的正则表达式来练习。我的问题是,如何使用正则表达式从页面的一部分中删除所有HTML标记?例如,如果我有以下代码段:
<p>Hello, <b>my</b> name is <a href="#">Aaron</a></p>
如何删除所有标记,以便我的结果是: 您好,我的名字是Aaron
到目前为止,我尝试过使用它:
/<{1}[a-zA-z]+>{1}/ and /</{1}[a-zA-z]+>/
尝试获取不同的标签但是当我尝试运行它时,我只得到第一个
标签作为结果。 http://jsfiddle.net/x7aUx/1
答案 0 :(得分:1)
嗯,你无法保证HTML中的任何内容,所以这可能就足够了:
alert('<p>Hello, <b>my</b> name is <a href="#">Aaron</a></p>'.replace(/<.*?>/g,""));
它使用匹配&lt;之间的所有内容的正则表达式<.*?>
。和&gt;包括自己并用空字符串替换它们。
使用正则表达式解析HTML是个坏主意,除非您是出于学习目的而这样做。
答案 1 :(得分:1)
关于使用正则表达式解析html的所有免责声明:
result = subject.replace(/<[^>]*>/g, "");
<
匹配左大括号[^>]*
匹配任何不是右括号的字符>
匹配右括号""