Javascript regex test()错误:对象没有方法'test'

时间:2013-07-17 01:09:54

标签: javascript jquery regex testing

我无法使用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' 

有什么想法吗?

1 个答案:

答案 0 :(得分:8)

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

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

或者这个:

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