Удалить часть строки(с меня баланс :)
Добрый день гуру!
в переменной возможны такие варианты. 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# && Как я понимаю нужны спецсимволы в регулярном выражении которые я ещё к сожалению не освоил :( . Спасибо за понимание! Очень жду оперативный ответ :) |
Нашёл какое то подобие в сети, но это не то что нужно... Может поймёте куда приблизительно копать...
Дело в том что внутри скобок могут быть и другие значения (пос.), (д.) и т.п. s = "Санкт-Петербург(г.)" "Санкт-Петербург(г.)" s.replace(/\s*\([а-яА-Я\.]+\)$/g, "") "Санкт-Петербург" |
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); |
Цитата:
var str = '(#24174#||#22301#||#22298#||#22303#)' Чтоб он и на этот вариант распространился... Ну если мельком в голову нечего не придёт, поставлю условия... |
Предложу такой вариант...
var str='(#24174#||#22301#||#22298#||#22303#) && #14827# && #14543#'; alert(str.replace(/([^#]*)?\(.+\)([^#]*)?/g,'')); str = '#144357# && #14827# && (#24174#||#22301#||#22298#)'; alert(str.replace(/([^#]*)?\(.+\)([^#]*)?/g,'')); |
Boomerml,
var str = '(#24174#||#22301#||#22298#||#22303#)' что на выходе должно быть ? |
Цитата:
Мой вариант так может. :yes: var str = '(#24174#||#22301#||#22298#||#22303#)'; alert('>'+str.replace(/([^#]*)?\(.+\)([^#]*)?/g,'')+'<'); |
Цитата:
Цитата:
|
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); |
Цитата:
Теперь даже не знаю что делать :) Хотяяя :) допишу компоненту. Если вопросов не будет, то пополам! там немного осталось. остальное в лс. Спасибо что откликнулись) |
Цитата:
|
Цитата:
щюпал код дальше ksa спасибо, но все отдам рони :) было ещё одно разногласие str = '#14827# && (#24174#||#22301#||#22298#||#22303#) && #13002#'; вывод ksa '#13002##14827# && (#24174#||#22301#||#22298#||#22303#)' а нужно: вывод рони '#13002# && (#24174#||#22301#||#22298#||#22303#) && #14827#' Обоим ещё раз человеческое спасибо) рони жди прибавление :) |
Цитата:
|
Появилась ещё задача...
str = '#14827# && (#24174#||#22301#||#22298#||#22303#) && #13002#'; Нужно забрать то что в скобках в переменную к примеру в переменную tt чтоб был результат.. (не пинайте если вопрос чайника :) alert(tt);// #24174#||#22301#||#22298#||#22303# Ещё мне нужно условие присутствия скобок... правильно я понимаю нужна функци indexOf('(') |
Boomerml,
var str = '#14827# && (#24174#||#22301#||#22298#||#22303#) && #13002#', tt = str.match(/\((.*?)\)/); tt = tt ? tt[1] : ''; alert(tt) |
оцените мой вариант без регулярок плиз
var str1 = '(#24174#||#22301#||#22298#||#22303#) && #14827# && #14543#', str2 = '#144357# && #14827# && (#24174#||#22301#||#22298#)'; result1 = str1.slice( str1.indexOf('&&') ).replace('&&', ''); result2 = str2.slice( str2.indexOf(str2[0] || '#'), str2.indexOf('(') - 4 ); alert(result1); alert(result2); |
Arramis,
а кто будет определять это строка вида str1 или str2 и ещё какая? |
Цитата:
|
Цитата:
var str2 = '(#24174#||#22301#||#22298#||#22303#) && #14827# && #14543#', result2 = str2.slice( str2.indexOf(str2[0] || '#'), str2.indexOf('(') - 4 ); alert(result2); |
Цитата:
|
Цитата:
Или вера не позволяет? |
Цитата:
|
Цитата:
Да и на форуме этом практически всегда помогают в их составлении. Тем паче, что ты даже какие-то деньги за это предлагаешь... |
Цитата:
|
Часовой пояс GMT +3, время: 02:30. |