2011-12-28 5 views
1

Я пишу функцию замены в JavaScript с учетом в словоразделCase Нечувствительность Javascript заменить регулярное выражение с учетом границы слова

blog = blog.toLowerCase().replace(new RegExp("\\b" + wordList[i].toLowerCase() + "\\b", 'g'), "value to replace"); 

Теперь это СЛУЧАЙ SESITIVE Заменить я хочу, чтобы сделать его СЛУЧАЙ INSENSITIVE ,

Как я могу это сделать?

Хотя для случая INSENSITIVE есть \ I, но я не знаю, знаете, как установить его в своем коде

Любая помощь приветствуется.

ответ

3

Просто передайте i с g в flags аргументе new RegExp() constructor. Как так:

new RegExp("\\b" + wordList[i].toLowerCase() + "\\b", 'gi') 

В этот момент, вы должны быть в состоянии удалить все String.toLowerCase вызовы:

var re = new RegExp("\\b" + wordList[i] + "\\b", 'gi'); 
blog = blog.replace(re, 'value to replace'); 

нотабене вам может понадобиться escape the value of worldList\[i\], чтобы ваш код случайно не попытался создать неправильное регулярное выражение.

+0

@ MДΓΓ БДЛЛ Большое спасибо. Моя проблема решена. – Moons

+0

Добро пожаловать. Не забудьте прочитать мое редактирование об экранировании, если вы его уже не видели. –

+0

@ MДΓΓ БДЛЛ Хорошо, конечно – Moons

2

изменить ваш 'g' к 'gi' - в «г» означает «глобальный», то «я» означает «регистронезависимы»:

..., 'gi'), "value... 
Смежные вопросы