正则表达式测试

时间:2012-07-27 23:21:28

标签: javascript regex

这个javascript中的正则表达式

var foo = RegExp("^https?:\/\/(\w+\.)*youtube\.([a-zA-Z0-9])+");

将匹配以下字符串:[以下语句返回true]

foo.test("http://www.youtube.com");
foo.test("https://www.youtube.com");
foo.test("http://youtube.com");

但如果表达式为:

,则相同的测试失败
var foo_fail = RegExp("^https?:\/\/(\w+\.)*youtube\.\w+");

这个RegExp应该已通过上述测试,但我看到: foo_fail.test( “http://www.youtube.com”);在chrome / firebug控制台上返回false。这应该是真的。这个表达有什么问题?

如果在perl上运行,则类似的表达式返回预期的成功匹配。

1 个答案:

答案 0 :(得分:5)

您在w

之前错过了反斜杠
\.\w+

此外,对于静态正则表达式,从不使用[new] RegExp()语法,而是使用正则表达式文字:

var foo = /^https?:\/\/(\w+\.)*youtube\.\w+/;