Reputation: 7979
var regExpression = /^([a-zA-Z0-9_\-\.]+)$/; //line 2
//// var regExpression = "/" + "^([a-zA-Z0-9_\-\.]+)$" + "/"; //line 3
alert (regExpression.test("11aa"));
The above code is working fine.
But if we replace line 2 by line 3 then it is not working
why?
i am in a situation like I want to create the var only by appending(the expression come dynamically) so what should i do?
Upvotes: 3
Views: 294
Reputation: 54593
Line 3 sets regExpression
to a string. Strings does not have a test
method. You need to turn the string into a RegExp.
var regExpression = new RegExp("^([a-zA-Z0-9_\\-\\.]+)$");
Omit the slashes, as they are not part of the regexp itself.
Upvotes: 3
Reputation: 117334
If you like to create a RegExp dynamically, use new RegExp(). This allows you to build the expression with string-functions
Upvotes: 0