Соответствие URL регулярного выражения Javascript - PullRequest
2 голосов
/ 15 мая 2010

Пока у меня есть это:

chrome.tabs.getSelected(null, function(tab) 
{
    var title = tab.title;
    var btn = '<a href="' + tab.url + '" onclick="save(\'' + title + '\');"> ' + title + '</a>';

    if(tab.url.match('/http:\/\/www.mydomain.com\/version.php/i')) 
    {
        document.getElementById('link').innerHTML = '<p>' + btn + '</p>';
    }
});

В основном это должно соответствовать домену в этом:

http://www.mydomain.com/version.php?*

Все, что соответствует этому, даже если оно включает что-то вроде version.php? Ver = 1 и т. Д.

Когда я использовал приведенный выше код, он ничего не отображает, но когда я удаляю оператор if, все нормально, но он показывает на других страницах, что он не должен только на сопоставленном URL.

EDIT:

if(tab.url.match(/http:\/\/www.mydomain.com\/version.php/i)) 
{
    document.getElementById('link').innerHTML = '<p>' + btn + '</p>';
}

Даже не работает как-то ...

Ответы [ 4 ]

2 голосов
/ 15 мая 2010

Попробуйте это

if(tab.url.match(/http\:\/\/www\.mydomain\.com\/version\.php/i)) 
{
    //...
}
1 голос
/ 15 мая 2010

Удалить цитаты. Опера DargonFly дает мне:

>>> 'http://www.mydomain.com/version.php'.match(/^http:\/\/www\.mydomain.com\/version\.php/i) 
[object Array]
0 голосов
/ 15 мая 2010

match() должен принимать RegExp объект в качестве аргумента, а не строку. Вы могли бы просто удалить одинарные кавычки '' вокруг выражения, чтобы оно работало. Для дальнейшего использования вам также следует избегать периодов . в выражении (поскольку они будут соответствовать любому одному символу) и вставлять ^ в начале, чтобы разрешить это совпадение только в начало URL.

0 голосов
/ 15 мая 2010

Вы создаете объект RegExp, но не сопоставляете его ни с чем. См. здесь , чтобы узнать, как его использовать (кстати, синтаксис также неправильный, это либо / выражение / модификаторы, либо RegExp (выражение, модификаторы)).

...