我正在尝试用JS替换一些URL。 我不明白,为什么正则表达式在这里不匹配。 我在这个网站上测试了我的表达:http://www.regular-expressions.info/javascriptexample.html 我在这里得到了积极的结果,但不是我自己的剧本。 有人可以帮忙吗?
var pattern = new RegExp("http://www\.example\.com/out/\?url=","g");
var context = "http://www.example.com/out/?url=http://google.com";
if(context.match(pattern))
{
context = context.replace(pattern,"");
alert(context);
}
else
alert("no match");
答案 0 :(得分:1)
使用正则表达式文字时,以下内容是正确的。
var pattern = /http:\/\/www\.example\.com\/out\/\?url=/;
使用new RegExp
时,以下内容是正确的
//var pattern = /http:\/\/www\.example\.com\/out\/\?url=/;
//var pattern = new RegExp("http:\\/\\/www\\.example\\.com\\/out\\/\\?url=");
var pattern = new RegExp("http://www\\.example\\.com/out/\\?url=");
var context = "http://www.example.com/out/?url=http://google.com";
if (context.match(pattern)) {
context = context.replace(pattern, "");
alert(context);
} else {
alert("no match");
}
我没有查看网站链接,看看他们对您的输入做了什么。
但基本上在使用RegExp
时,您需要双重转义在regexp文字中转义的任何内容。 /
不需要转义,因为它们在使用文字时才是特殊的。
哦,你的例子中不需要g
标志。