使用JavaScript正则表达式删除HTML标记

时间:2014-06-21 18:41:37

标签: javascript regex

我是正则表达式的新手,我正在尝试创建不同的正则表达式来练习。我的问题是,如何使用正则表达式从页面的一部分中删除所有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

2 个答案:

答案 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, "");
  • <匹配左大括号
  • [^>]*匹配任何不是右括号的字符
  • >匹配右括号
  • 我们用空字符串""
  • 替换