Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   удалить слово из строки (https://javascript.ru/forum/misc/7321-udalit-slovo-iz-stroki.html)

mycoding 26.01.2010 16:49

удалить слово из строки
 
Много раз возникали такие ситуации, что надо удалить из строки какое-нибуль слово, но не разу не реализовывал, чем это лучше делать регулярными выражениями или replace методом, или ещё чем
Например из следующей строки
str="dialogTitleCloseSpan image imageCloseButton dialogTitleCloseSpanOver dialogTitleCloseSpanOver";

Надо удалить dialogTitleCloseSpanOver;
Извините за такой нелепый вопрос.

Kolyaj 26.01.2010 16:54

alert(str.replace(/dialogTitleCloseSpanOver/g, ''));

e1f 26.01.2010 17:06

Kolyaj, а ничего, что
'aaa aaaa aa'.replace(/aaa/g, '')
превращается в " a aa"?
ЕМНИП, так:
'aaa aaaa aa'.replace(/\baaa\b/g, '')

Ну или так:
'aaa aaaa aa'.replace(/(^|\s)aaa(\s|$)/g, '')

Kolyaj 26.01.2010 17:07

e1f,
ничего :)

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

PeaceCoder 26.01.2010 17:09

Цитата:

Сообщение от e1f
Kolyaj, а ничего, что

вот и я сразу увидел.
ТСу надо
alert(str.replace(/(^|\s+)dialogTitleCloseSpanOver(\s+|$)/g, ' '));

e1f 26.01.2010 17:09

Kolyaj,
'1aaa aaaa aa'.replace(/\baaa\b/g, '')

Kolyaj 26.01.2010 17:33

e1f,
и что должно получиться?

PeaceCoder,
str = '111 dialogTitleCloseSpanOver dialogTitleCloseSpanOver 222';
alert(str.replace(/(^|\s+)dialogTitleCloseSpanOver(\s+|$)/g, ' '));

e1f 26.01.2010 17:45

Kolyaj, очепятка.
'!aaa aaaa aa'.replace(/\baaa\b/g, '')

Почему заменило то, что начинается с !? Для классов, которые наверняка собирается менять ТС, можно указывать так:
'a-aaa aaaa aa'.replace(/\baaa\b/g, '')

Тоже не айс.

Kolyaj 26.01.2010 17:47

Цитата:

Сообщение от e1f
Почему заменило то, что начинается с !?

А почему не должно было? Условий задачи никаких не было.

e1f 26.01.2010 17:49

Для этой задачи лучше всего подходит, имхо, то, как сделано в jQuery:
split по \s+, потом удаление тех классов, которые надо убрать, и join по ' '


Часовой пояс GMT +3, время: 02:49.