【问题标题】:Youtube links not matching regex correctlyYoutube 链接与正则表达式不匹配
【发布时间】:2011-05-13 15:15:45
【问题描述】:

这是我的代码:

$(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 URL 不匹配。我认为这是我尝试使用正则表达式匹配它的方式。我已经以多种方式测试了正则表达式本身,它确实是正确的,但我不熟悉将正则表达式与 Javascript 一起使用,因此可能使用不正确。

感谢任何帮助,谢谢。

【问题讨论】:

    标签: jquery regex youtube


    【解决方案1】:

    www. 周围使用括号,而不是方括号。方括号用于字符类。 [www\.][w.] 相同,意思是“匹配单个 w 或文字 .”,并不完全符合您的意图。

    此外,您在正则表达式末尾的文字破折号需要转义。

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

    【讨论】:

    • 这只是使该字符组成为捕获组。为什么要这样做?
    • @Alex 我假设是因为作者希望能够使 www\. 字符可选。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-04-12
    • 2022-10-24
    • 1970-01-01
    相关资源
    最近更新 更多