JS正则表达式适用于regular-expressions.info,但不适用于我的代码

时间:2013-03-14 11:48:24

标签: javascript regex

我在JavaScript中有这个字符串:

s = "</p><ol><li>First\n</li><li>Second\n</li></ol><p>"

然后我这样做(删除外部的“&lt; / p&gt; ...&lt; p&gt;”):

s = s.replace(/^<\/([^> ]+)[^>]*>(.*)<\1>$/,"$2");

没有任何反应(s未更改,并且使用match()返回false),但是如果我在http://www.regular-expressions.info/javascriptexample.html尝试它,它就可以了!

我尝试了各种各样的事情(创建一个单独的regExp对象,使用// g,取出^ $,用[a-z0-9] *替换[^&gt;] + ...)但是没有任何区别。

这让我疯了。谁能告诉我我做错了什么?

1 个答案:

答案 0 :(得分:1)

问题很简单,.与换行符\n不匹配。

如果您将.*替换为[\s\S]*,那么您的正则表达式应该可行。

[\s\S]表示匹配任何空格或非空格字符,相当于匹配任何字符。