Ссылки на YouTube не соответствуют регулярному выражению - PullRequest
2 голосов
/ 22 ноября 2010

Это мой код:

$(document).ready(function(){

    var valid_url = new RegExp('http://[www\.]?youtube.com/watch\?v=[a-zA-Z0-9_-]*', '');

    $('a').each(function(){

        // Check if it's a valid Youtube URL
        var link = $(this).attr('href');
        if( valid_url.test( link ) ){
            alert( "valid" );
        }

    });

});

Но, похоже, он не соответствует URL-адресу YouTube.Я думаю, что я пытаюсь сопоставить это с помощью регулярных выражений.Я тестировал само регулярное выражение несколькими способами, и это действительно правильно, но я не знаком с использованием регулярного выражения с Javascript, поэтому могу использовать его неправильно.

Любая помощь приветствуется, спасибо.

1 Ответ

3 голосов
/ 22 ноября 2010

Используйте скобки вокруг www., а не квадратные скобки. Квадратные скобки предназначены для классов персонажей. [www\.] совпадает с [w.] и означает «соответствует одному w или буквальному .», не совсем то, что вы намереваетесь.

Кроме того, буквальную черту, которую вы имеете в конце регулярного выражения, необходимо экранировать.

http://(www\.)?youtube.com/watch\?v=[a-zA-Z0-9_\-]*
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...