I have a regex to check if a string contains a specific word. It works as expected:
/\bword\b/.test('a long text with the desired word amongst others'); // true
/\bamong\b/.test('a long text with the desired word amongst others'); // false
But i need the word which is about to be checked in a variable. Using new RegExp
does not work properly, it always returns false
:
var myString = 'a long text with the desired word amongst others';
var myWord = 'word';
new RegExp('\b' + myWord + '\b').test(myString); // false
myWord = "among";
new RegExp('\b' + myWord + '\b').test(myString); // false
What is wrong here?
var myWord = 'word';
new RegExp('\\b' + myWord + '\\b')
You need to double escape the \
when building a regex from a string.
This is because \
begins an escape sequence in a string literal, so it never makes it to the regex. By doing \\
, you're including a literal '\'
character in the string, which makes the regex /\bword\b/
.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With