How do you use a variable in a regular expression?
Posted By: JC Grubbs
I would like to create a String.replaceAll()
method in JavaScript and I’m thinking that using a regex would be most terse way to do it. However, I can’t figure out how to pass a variable in to a regex. I can do this already which will replace all the instances of "B"
with "A"
.
"ABABAB".replace(/B/g, "A");
But I want to do something like this:
String.prototype.replaceAll = function(replaceThis, withThis) {
this.replace(/replaceThis/g, withThis);
};
But obviously this will only replace the text "replaceThis"
…so how do I pass this variable in to my regex string?
Solution
Instead of using the /regexd/g
syntax, you can construct a new RegExp object:
var replace = "regex\d";
var re = new RegExp(replace,"g");
You can dynamically create regex objects this way. Then you will do:
"mystring1".replace(re, "newstring");
Answered By: Eric Wendelin
Disclaimer: This content is shared under creative common license cc-by-sa 3.0. It is generated from StackExchange Website Network.