Create RegExps on the fly using string variables
javascript, regex
Solution
There's `new RegExp(string, flags)` where `flags` are `g` or `i`. So
'GODzilla'.replace( new RegExp('god', 'i'), '' )
evaluates to
zilla
Problem
Say I wanted to make the following re-usable: ``` function replace_foo(target, replacement) { return target.replace("string_to_replace",replacement); } ``` I might do something like this: ``` function replace_foo(target, string_to_replace, replacement) { return target.replace(string_to_replace,replacement); } ``` With string literals this is easy enough. But what if I want to get a little more tricky with the regex? For example, say I want to replace everything but `string_to_replace`. Instinctually I would try to extend the above by doing something like: ``` function replace_foo(target, string_to_replace, replacement) { return target.replace(/^string_to_replace/,replacement); } ``` This doesn't seem to work. My guess is that it thinks `string_to_replace` is a string literal, rather than a variable representing a string. Is it possible to create JavaScript regexes on the fly using string variables? Something like this would be great if at all possible: ``` function replace_foo(target, string_to_replace, replacement) { var regex = "/^" + string_to_replace + "/"; return target.replace(regex,replacement); } ```