Javascript regex test() error: Object has no method 'test'

javascript, jquery, regex, testing

Solution

The `test` method is defined on `RegExp` objects. Try this:

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

Or this:

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

Problem

I cant get the javascript `test()` method to work, I keep getting an error, this regular expression is working fine when using the `match()` function. This is my 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'); } ``` This is the error I keep getting: ``` Uncaught TypeError: Object ^(?:https?://)?(?:www.)?(?:youtube.com|youtu.be)(?:/)(?:watch?v=)?([^&]+) has no method 'test' ``` Any ideas?

Original source