удалить слово из строки
Много раз возникали такие ситуации, что надо удалить из строки какое-нибуль слово, но не разу не реализовывал, чем это лучше делать регулярными выражениями или replace методом, или ещё чем
Например из следующей строки str="dialogTitleCloseSpan image imageCloseButton dialogTitleCloseSpanOver dialogTitleCloseSpanOver"; Надо удалить dialogTitleCloseSpanOver; Извините за такой нелепый вопрос. |
alert(str.replace(/dialogTitleCloseSpanOver/g, '')); |
Kolyaj, а ничего, что
'aaa aaaa aa'.replace(/aaa/g, '')превращается в " a aa"? ЕМНИП, так: 'aaa aaaa aa'.replace(/\baaa\b/g, '') Ну или так: 'aaa aaaa aa'.replace(/(^|\s)aaa(\s|$)/g, '') |
e1f,
ничего :) alert(str.replace(/\bdialogTitleCloseSpanOver\b/g, '')); |
Цитата:
ТСу надо alert(str.replace(/(^|\s+)dialogTitleCloseSpanOver(\s+|$)/g, ' ')); |
Kolyaj,
'1aaa aaaa aa'.replace(/\baaa\b/g, '') |
e1f,
и что должно получиться? PeaceCoder, str = '111 dialogTitleCloseSpanOver dialogTitleCloseSpanOver 222'; alert(str.replace(/(^|\s+)dialogTitleCloseSpanOver(\s+|$)/g, ' ')); |
Kolyaj, очепятка.
'!aaa aaaa aa'.replace(/\baaa\b/g, '') Почему заменило то, что начинается с !? Для классов, которые наверняка собирается менять ТС, можно указывать так: 'a-aaa aaaa aa'.replace(/\baaa\b/g, '') Тоже не айс. |
Цитата:
|
Для этой задачи лучше всего подходит, имхо, то, как сделано в jQuery:
split по \s+, потом удаление тех классов, которые надо убрать, и join по ' ' |
Kolyaj,
Цитата:
|
Цитата:
str = 'dialogTitleCloseSpanOver 111 dialogTitleCloseSpanOver dialogTitleCloseSpanOver 222 dialogTitleCloseSpanOver'; alert(str.replace(/(^|\s+)dialogTitleCloseSpanOver(?=\s+|$)/g, '')); |
'dialogTitleCloseSpanOver 111 dialogTitleCloseSpanOver dialogTitleCloseSpanOver 222 dialogTitleCloseSpanOver'.replace(/(^|\s+)dialogTitleCloseSpanOver(\s+|$)/g, '') Результат: Код:
111dialogTitleCloseSpanOver 222 |
видимо ты попал в переправку. ща все ок
|
А как реализовать такой вот код.
str="ui-button ui-state-default ui-state-hover ui-state-hover ui-corner-all ui-state-hover"; myclass='ui-state-hover'; reg=/(^|\s+)+myclass+(?=\s+|$)/gi; str= str.replace(reg,''); alert(str); |
str="ui-button ui-state-default ui-state-hover ui-state-hover ui-corner-all ui-state-hover"; myclass='ui-state-hover'; reg= new RegExp('(^|\\s+)' + myclass + '(?=\\s+|$)', 'gi'); str= str.replace(reg,''); alert(str); |
Могу, как альтернативу регулярки предложить такое:
var tag = 'Пенсии', str = 'Качество обслуживания, Пенсии, Бесы, карта'; if(str.indexOf(tag) == 0){ str = str.substring(tag.length +2); } else { str = str.substring(0, str.indexOf(tag) - 2) + str.substring(str.indexOf(tag) + tag.length); } alert(str) |
Часовой пояс GMT +3, время: 06:39. |