Javascript: regex для замены слов внутри текста, а не части слов

Мне нужно регулярное выражение для замены слов внутри текста, а не части слов.

Мой код, который заменяет 'de' также, когда его часть слова:

str="de degree deep de";
output=str.replace(new RegExp('de','g'),''); 

output==" gree ep "

Результат, который мне нужен: " degree deep "

Что должно быть регулярным выражением для получения правильного вывода?

Ответ 1

str.replace(/\bde\b/g, ''); 

Обратите внимание, что

RegExp('\\bde\\b','g')   // regex object constructor (takes a string as input)

и

/\bde\b/g                // regex literal notation, does not require \ escaping

- одно и то же.

\b обозначает "границу слова". Граница слова определяется как позиция, в которой символ слова следует за символом, отличным от слова, или наоборот. Символ слова определяется как [a-zA-Z0-9_] в JavaScript.

Позиции начала и конца строки также могут быть границами слов, если они следуют или предшествуют символу слова соответственно.

Помните, что понятие символа слова не очень хорошо работает вне царства английского языка.

Ответ 2

str="de degree deep de";
output=str.replace(/\bde\b/g,''); 

Ответ 3

Вы можете использовать reg ex \bde\b.

Здесь вы можете найти рабочий образец здесь.

Регулярный символ \b действует как разделитель слов. Вы можете найти здесь .

Ответ 4

Вы должны заключить свои символы поиска между \b:

str="de degree deep de";
output=str.replace(/\bde\b/g,''); 

Ответ 5

Вы можете использовать границу слова как примечание Аруна и Томалака.

/\ BDE\б/г

или вы можете использовать пробел

/де\с/г

http://www.regular-expressions.info/charclass.html