正则表达式测试

Regular expression test

本文关键字:测试 正则表达式      更新时间:2024-05-06

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。这应该返回true。这个表达式出了什么问题?

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

w:之前缺少一个反斜杠

'.'w+

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

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