匹配URL与RegExpObject.test()不起作用

时间:2013-10-12 05:27:27

标签: javascript regex

我正在尝试将document.URL*google.co*/search/*模式匹配为

if (
        !(/google.*\/search/.test(document.URL))
    ){
    alert("hi");

但是我无法弄清楚什么是错的,它不起作用。 编辑:如果模式正确,那么为什么RegExpObject.test()函数不按预期工作?

因为如下所示,网站 (或应该)与模式匹配,而!非运营商,我不应该看到警报,但我是。


编辑:表达式都是正确的(即使是我自己的),我只是遇到缓存问题。

2 个答案:

答案 0 :(得分:1)

这是正则表达式:

/(.*\.)?google\.co.+\/search.*\/.*/

它将符合以下模式:

google.com/search/
google.co.uk/search/

www.google.com/search/
www.google.co.uk/search/

google.com/search/query?...
google.com/search-any-pattern/query-any-pattern
...

答案 1 :(得分:1)

你的正则表达式看起来很可疑。

请参阅以下代码:

if ( !(/(www\.)?google\.co[^\/]+\/search/
       .test('https://www.google.com/search?q=find%20my%20iphone#q=find+empty+folders')) ) {
    alert("nope");
} else {
    alert("yup");
}

会提醒"yup"

正确的正则表达式将是:

/(www\.)?google\.co[^\/]+\/search/

您无需匹配文字*