A colleague asked me about a Regular expression problem, and I can\'t seem to find and answer for him.
We\'re using boundaries to highlight certain lengths of text i
There are 2 ways to write your regular expressions in Javascript
In literal way, you use as you learned in your textbook, e.g. /balabala/ But in RegExp object, regular expression is written as a string.
Try the following codes, you know what string behaves in javascript.
alert("O\K");
alert("O\\K");
There's another occasion when Regexp written in a textarea or input box. For example,
http://www.pagecolumn.com/tool/regtest.htm
In this case, \ in Regexp need not be escaped.
In fact you have to backslash everything in the string passed to the RegExp constructor :
var re = /my_([\w_]+-\d-)regexp/
is equivalent to :
var re = new RegExp("my_\(\[\\\w_\]+-\\\d-\)regexp")
And both match the following stupid example :
"my_very_obvious-4-regexp".match(re)
["my_very_obvious-4-regexp", "very_obvious-4-"]
This is a string issue. \b
in a string literal is a backspace!
RegExp('\\bAlpha\\b','gim');
would be the correct form
I'm guessing it doesn't work because you need to escape the backslashes in your string that you pass to RegExp. You have this:
var rx = new RegExp('\bAlpha\b','gim');
You need this:
var rx = new RegExp('\\bAlpha\\b','gim');
The string you passed to RegExp has 2 backspace characters in it, since \b
is the escape sequence for inserting a backspace into a string. You need to escape each backslash with another backslash.
RegExp needs to have the escape character escaped:
new RegExp('\\bAlpha\\b')