Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 04.12.2013, 13:53
Аватар для Boomerml
Аспирант
Отправить личное сообщение для Boomerml Посмотреть профиль Найти все сообщения от Boomerml
 
Регистрация: 04.12.2013
Сообщений: 31

Удалить часть строки(с меня баланс :)
Добрый день гуру!

в переменной возможны такие варианты.

1Вариант. - (#24174#||#22301#||#22298#||#22303#) && #14827# && #14543#
2Вариант. - #144357# && #14827# && (#24174#||#22301#||#22298#)

В идеале нужно удалить то что в скобках(с скобками включительно) и как бы внешний '&&'. т.е. чтобы осталось (если сделайте номер в лс)

1Вариант. - #14827# && #14543#
2Вариант. - #144357# && #14827#
*Подмечу их может быть много в конечном варианте - #144357# && #14827# && #18234# && #12324#

Или хотяб

1Вариант - && #14827# && #14543#
2Вариант. - #144357# && #14827# &&

Как я понимаю нужны спецсимволы в регулярном выражении которые я ещё к сожалению не освоил .
Спасибо за понимание! Очень жду оперативный ответ
Ответить с цитированием
  #2 (permalink)  
Старый 04.12.2013, 13:55
Аватар для Boomerml
Аспирант
Отправить личное сообщение для Boomerml Посмотреть профиль Найти все сообщения от Boomerml
 
Регистрация: 04.12.2013
Сообщений: 31

Нашёл какое то подобие в сети, но это не то что нужно... Может поймёте куда приблизительно копать...


Дело в том что внутри скобок могут быть и другие значения (пос.), (д.) и т.п.
s = "Санкт-Петербург(г.)"
"Санкт-Петербург(г.)"
s.replace(/\s*\([а-яА-Я\.]+\)$/g, "")
"Санкт-Петербург"
Ответить с цитированием
  #3 (permalink)  
Старый 04.12.2013, 14:02
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,108

Boomerml,
var str = '(#24174#||#22301#||#22298#||#22303#) && #14827# && #14543#'
   reg = /[^#]+\(.*?\)|\(.*?\)[^#]+/
   str = str.replace(reg,'');
   alert(str);
   str = '#144357# && #14827# && (#24174#||#22301#||#22298#)';
   str = str.replace(reg,'');
   alert(str);
Ответить с цитированием
  #4 (permalink)  
Старый 04.12.2013, 14:14
Аватар для Boomerml
Аспирант
Отправить личное сообщение для Boomerml Посмотреть профиль Найти все сообщения от Boomerml
 
Регистрация: 04.12.2013
Сообщений: 31

Сообщение от рони Посмотреть сообщение
Boomerml,
var str = '(#24174#||#22301#||#22298#||#22303#) && #14827# && #14543#'
   reg = /[^#]+\(.*?\)|\(.*?\)[^#]+/
   str = str.replace(reg,'');
   alert(str);
   str = '#144357# && #14827# && (#24174#||#22301#||#22298#)';
   str = str.replace(reg,'');
   alert(str);
Спасибо. Работает за маленьким исключением. Код такая вешь, не проверишь не поймёшь, тут 3 вариант события после каких то действий...

var str = '(#24174#||#22301#||#22298#||#22303#)'

Чтоб он и на этот вариант распространился... Ну если мельком в голову нечего не придёт, поставлю условия...
Ответить с цитированием
  #5 (permalink)  
Старый 04.12.2013, 14:18
Аватар для ksa
ksa ksa вне форума
CacheVar
Отправить личное сообщение для ksa Посмотреть профиль Найти все сообщения от ksa
 
Регистрация: 19.08.2010
Сообщений: 14,213

Предложу такой вариант...

var str='(#24174#||#22301#||#22298#||#22303#) && #14827# && #14543#';
alert(str.replace(/([^#]*)?\(.+\)([^#]*)?/g,''));
str = '#144357# && #14827# && (#24174#||#22301#||#22298#)';
alert(str.replace(/([^#]*)?\(.+\)([^#]*)?/g,''));
Ответить с цитированием
  #6 (permalink)  
Старый 04.12.2013, 14:19
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,108

Boomerml,
var str = '(#24174#||#22301#||#22298#||#22303#)'
что на выходе должно быть ?
Ответить с цитированием
  #7 (permalink)  
Старый 04.12.2013, 14:21
Аватар для ksa
ksa ksa вне форума
CacheVar
Отправить личное сообщение для ksa Посмотреть профиль Найти все сообщения от ksa
 
Регистрация: 19.08.2010
Сообщений: 14,213

Сообщение от Boomerml
var str = '(#24174#||#22301#||#22298#||#22303#)'
Это должно стать пустой строкой?
Мой вариант так может.

var str = '(#24174#||#22301#||#22298#||#22303#)';
alert('>'+str.replace(/([^#]*)?\(.+\)([^#]*)?/g,'')+'<');
Ответить с цитированием
  #8 (permalink)  
Старый 04.12.2013, 14:22
Аватар для ksa
ksa ksa вне форума
CacheVar
Отправить личное сообщение для ksa Посмотреть профиль Найти все сообщения от ksa
 
Регистрация: 19.08.2010
Сообщений: 14,213

Сообщение от Boomerml
В идеале нужно удалить то что в скобках(с скобками включительно) и как бы внешний '&&'.
Сообщение от рони
что на выходе должно быть ?
Думаю, что пустая строка...
Ответить с цитированием
  #9 (permalink)  
Старый 04.12.2013, 14:26
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,108

var str = '(#24174#||#22301#||#22298#||#22303#) && #14827# && #14543#'
   reg = /(^|[^#]+)\(.*?\)$|\(.*?\)[^#]+/
   str = str.replace(reg,'');
   alert(str);
   str = '#144357# && #14827# && (#24174#||#22301#||#22298#)';
   str = str.replace(reg,'');
   alert(str);
   str = '(#24174#||#22301#||#22298#||#22303#)';
   str = str.replace(reg,'');
   alert(str);
Ответить с цитированием
  #10 (permalink)  
Старый 04.12.2013, 14:28
Аватар для Boomerml
Аспирант
Отправить личное сообщение для Boomerml Посмотреть профиль Найти все сообщения от Boomerml
 
Регистрация: 04.12.2013
Сообщений: 31

Сообщение от ksa Посмотреть сообщение
Думаю, что пустая строка...
+ Кул

Теперь даже не знаю что делать Хотяяя допишу компоненту. Если вопросов не будет, то пополам! там немного осталось. остальное в лс.

Спасибо что откликнулись)
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Как айти часть слова и удалить её? neutron jQuery 6 15.02.2013 16:44