我无法使用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'
有什么想法吗?
答案 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=)?([^&]+)");