Помогите с регуляркой
Здравствуйте!
Надо на лету сгенерировать регулярку. Регулярка должна иметь вид /\b($word)\b/ (кстати надеюсь это правильная регулярка для нахождения целого слова) Я пишу
var word = "trololo";
var reg1 = new RegExp("/\b($" + word + ")\b/");
var reg2 = new RegExp("/\\b($" + word + ")\\b/");
//должно получиться /\b($trololo)\b/
alert(reg1.toString());
alert(reg2.toString());
alert("как надо: " + /\b($trololo)\b/.toString());
как-то странно что reg1 = /\b($trololo)\b/; reg2 = new RegExp(/\b($trololo)\b/.toString()); alert(reg1.toString()==reg2.toString()); Могу конечно сгенерировать через эвал на крайний случай, но оень не хочу этого :) Надеялся понять почему так происходит |
Твоя ошибка в том, что не нужно использовать / в строке с регуляркой.
reg1 = /\b($trololo)\b/;
reg2 = new RegExp('\\b($trololo)\\b');
alert(reg1.toString()==reg2.toString());
|
WorM32,
почему-то проблема только при составлении строки
var word = "trololo";
reg1 = new RegExp("/\\b($" + word + ")\\b/");
reg2 = new RegExp('\\b($trololo)\\b');
alert(reg1.toString()==reg2.toString());
|
tsigel,
Да нет там проблем, я же говорю, не должно быть /.
var word = "trololo";
reg1 = new RegExp("\\b($" + word + ")\\b");
reg2 = new RegExp('\\b($trololo)\\b');
alert(reg1.toString()==reg2.toString());
|
WorM32,
во я затупил! точно! спасибо! |
Только слово исключительно англицкое. \b не держит юникод. И даже в этом случае в слове желательно заэкранировать спецсимволы.
|
| Часовой пояс GMT +3, время: 17:34. |