网页和Chrome扩展中的不同正则表达式行为
我在这个页面上试用这个正则表达式:http://www.regular-expressions.info/javascriptexample.html
Regex = (?:http://)?(?:www.)?facebook.com/([w-.]*)?
和主题字符串= http://www.facebook.com/xxxxxx
这会返回两个匹配项: http://www.facebook.com/xxxxxx
: http://www.facebook.com/xxxxxx
和xxxxxx
与我的Chrome扩展中嵌入的JavaScript相同,但是它只显示一个匹配项:'http://www.facebook.com/'。 有任何想法吗 ? 以下是代码:
var re = new RegExp("(?:http://)?(?:www.)?facebook.com/(?:profile.php?id=(?=d.*))?([w-]*)?");
var m = re.exec("http://www.facebook.com/xxxxx");
if (m == null) {
alert("No match");
} else {
var s = "Match at position " + m.index + ":n";
for (i = 0; i < m.length; i++) {
s = s + m[i] + "n";
}
alert(s);
}
当regexp来自一个字符串时,每个反斜杠应该被屏蔽:
var re = new RegExp("(?:http://)?(?:www.)?facebook.com/(?:profile.php?id=(?=d.*))?([w-]*)?");
在JavaScript中,您还可以创建不带字符串的正则表达式模式:
var re = /(?:http://)?(?:www.)?facebook.com/(?:profile.php?id=(?=d.*))?([w-]*)?/;
链接地址: http://www.djcxy.com/p/74835.html
上一篇: Different regex behaviour in web page and Chrome extension