I am sure its something pretty small that I am missing but I haven't been able to figure it out.

I have a JavaScript variable with the regex pattern in it but I cant seem to be able to make it work with the RegEx class

the following always evaluates to false:

var value = ""; var pattern = "^\w+@[a-zA-Z_]+?\.[a-zA-Z]{2,3}$" var re = new RegExp(pattern); re.test(value); 

but if I change it into a proper regex expression (by removing the quotes and adding the / at the start and end of the pattern), it starts working:

var value = ""; var pattern = /^\w+@[a-zA-Z_]+?\.[a-zA-Z]{2,3}$/ var re = new RegExp(pattern); re.test(value); 

since I always get the pattern as a string in a variable, I haven't been able to figure out what I am missing here.

1 Answer

Backslashes are special characters in strings that need to be escaped with another backslash:

var value = ""; var pattern = "^\\w+@[a-zA-Z_]+?\\.[a-zA-Z]{2,3}$" var re = new RegExp(pattern); re.test(value); 
2

Your Answer

Sign up or log in

Sign up using Google Sign up using Facebook Sign up using Email and Password

Post as a guest

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy