Вы смешиваете два способа создания регулярных выражений в JavaScript. Если вы используете литерал регулярного выражения, /
- это разделитель регулярных выражений, модификатор g
следует сразу же после закрывающего разделителя, а \b
- escape-последовательность для границы слова:
var regex = /width\b/g;
Если вы создаете его в виде строкового литерала для конструктора RegExp, вы исключаете разделители регулярных выражений, передаете модификаторы в виде второго строкового аргумента и должны удваивать обратные слэши в escape-последовательностях регулярных выражений:
var regex = new RegExp('width\\b', 'g');
То, как вы это делаете, \b
преобразуется в символ возврата, прежде чем он достигнет компилятора регулярных выражений; Вы должны избежать обратной косой черты, чтобы пройти через строково-буквенную обработку escape-последовательности JavaScript. Или используйте литерал регулярного выражения.