4

我无法让 javascripttest()方法工作,我一直收到错误,这个正则表达式在使用该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' 

有任何想法吗?

4

1 回答 1

8

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

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

或这个:

var reg = RegExp("^(?:https?://)?(?:www.)?(?:youtube.com|youtu.be)(?:/)(?:watch?v=)?([^&]+)");
于 2013-07-17T01:12:22.350 回答