Помогите с регуляркой
Здравствуйте!
Надо на лету сгенерировать регулярку. Регулярка должна иметь вид /\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, время: 08:00. |