【问题标题】:Javascript regex test() error: Object has no method 'test'Javascript regex test() 错误:对象没有方法“测试”
【发布时间】:2013-07-17 01:09:53
【问题描述】:

我无法让 javascript test() 方法工作,我一直收到错误消息,当使用 match() 函数时,此正则表达式工作正常。

这是我的 JS:

reg="^(?:https?://)?(?:www.)?(?:youtube.com|youtu.be)(?:/)(?:watch?v=)?([^&]+)";

ytl=$('#yt').val();    //this is just an input value
if(reg.test(ytl)){
    alert('works');
}

这是我不断收到的错误:

Uncaught TypeError: 
Object ^(?:https?://)?(?:www.)?(?:youtube.com|youtu.be)(?:/)(?:watch?v=)?([^&]+) 
has no method 'test' 

有什么想法吗?

【问题讨论】:

    标签: javascript jquery regex testing


    【解决方案1】:

    test 方法是在 RegExp 对象上定义的。试试这个:

    var reg = /^(?:https?:\/\/)?(?:www.)?(?:youtube.com|youtu.be)(?:\/)(?:watch?v=)?([^&]+)/;
    

    或者这个:

    var reg = RegExp("^(?:https?://)?(?:www.)?(?:youtube.com|youtu.be)(?:/)(?:watch?v=)?([^&]+)");
    

    【讨论】:

    • 很有趣,用 JavaScript 学习了这么多,当我对 PHP 没有任何问题时,似乎更加挑剔,但只是我缺乏经验。效果很好,谢谢。
    猜你喜欢
    • 2012-02-11
    • 1970-01-01
    • 2022-07-01
    • 2016-10-28
    • 1970-01-01
    • 2013-08-17
    • 1970-01-01
    • 1970-01-01
    • 2011-09-11
    相关资源
    最近更新 更多