0

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

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

但我不知道出了什么问题,它不起作用。编辑:如果模式正确,那么为什么 RegExpObject.test() 函数不能按预期工作?

因为如下所示,该站点(或应该)由模式匹配的,并且使用!not 运算符,我不应该看到警报,但我是。


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

4

2 回答 2

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
...
于 2013-10-12T05:29:28.913 回答
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/

你不需要匹配文字*

于 2013-10-12T06:55:11.083 回答