Youtube链接无法正确匹配正则表达式

时间:2010-11-22 04:13:16

标签: jquery regex youtube

这是我的代码:

$(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" );
        }

    });

});

但它似乎与Youtube网址无法正确匹配。我认为这是我尝试使用正则表达式匹配它的方式。我已经多种方式测试了正则表达式,它确实是正确的,但我不熟悉使用正则表达式和Javascript,所以可能使用它不正确。

感谢任何帮助,谢谢。

1 个答案:

答案 0 :(得分:3)

www.周围使用括号,而不是方括号。方括号用于字符类。 [www\.][w.]相同,表示“匹配单个w或文字.”,而不是您想要的内容。

此外,您在正则表达式末尾的文字短划线需要进行转义。

http://(www\.)?youtube.com/watch\?v=[a-zA-Z0-9_\-]*