正则表达式匹配评论

时间:2012-08-15 20:52:11

标签: javascript regex

我有两种评论块

<!-- asdfasd //-->

<!--asdfasd-->

    <!--
<span onclick="window.open('http://www.abc.com?xyz=asfasdfasd')">magic</span>
-->

我只需要匹配第二个/第三个并且我有这个模式,我尝试了很多组合,但没有运气。注释还包含所有数字/字母/特殊字符

<!--[\s\S]*?-->

6 个答案:

答案 0 :(得分:0)

对于上面发布的确切字符串,这有效:

<!--[^-/]+-->

但是,如果//可能在评论中的任何位置,它将无效。

我需要更多信息才能获得更准确的解决方案

欢呼声 tannerli

答案 1 :(得分:0)

只需使用一个功能:

我相信这是最正确的做法。

var str='<!--asdfasd-->';

var matches= str.match(/<!--.*?(\/*)-->/s)

if (matches&&!matches[1].length>1) alert('You got me :)')

说明:是否有'//'我们先捕获它。

然后我们检查第二场比赛的长度,我们会匹配任意数量的'/'。

如果有两个或更多的斜线 - 它会提醒'假';

http://jsfiddle.net/WNM7G/2/

答案 2 :(得分:0)

这应该这样做:

<!--[^\/\s]+-->

答案 3 :(得分:0)

尝试这种模式:

<!-- *[a-z]+ *-->

它适用于<!--asdfasd--><!-- asdfasd -->

编辑

  

注释还包含所有数字/字母/特殊字符???

添加所有预期的特殊字符,不要忘记转义:

[a-zA-Z0-9"!\?_-]+

答案 4 :(得分:0)

<!--(\\?|.|\s).*[^/^/]-->

这对我有用

答案 5 :(得分:0)

尝试以下模式:

<!--[\s\S]+?-->

它为我工作。