Javascript.RU

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

обработка строки..
Есть строка текста содержащая круглые скобки, нужно заменить все запятые в строке находящиеся внутри скобок на пробелы, причём скобок несколько. Незнаю как должен выглядеть регЕксп в данном случае.. подскажите пожалуйста!
Ответить с цитированием
  #2 (permalink)  
Старый 09.05.2010, 21:34
Отправить личное сообщение для Octane Посмотреть профиль Найти все сообщения от Octane  
Регистрация: 10.07.2008
Сообщений: 3,873

http://javascript.ru/RegExp
Ответить с цитированием
  #3 (permalink)  
Старый 09.05.2010, 21:38
Аспирант
Отправить личное сообщение для YISHIMITSY Посмотреть профиль Найти все сообщения от YISHIMITSY
 
Регистрация: 04.11.2008
Сообщений: 61

блин, наверное оч туплю... не могу найти там подходящее
str = str.replace(/,/g, " "); - меняет все запятые, а как обратится тока к тем которые внутри круглых скобок? В одном выражении это можно сделать или надо разбивать на подстроки?
Ответить с цитированием
  #4 (permalink)  
Старый 09.05.2010, 21:45
Отправить личное сообщение для Octane Посмотреть профиль Найти все сообщения от Octane  
Регистрация: 10.07.2008
Сообщений: 3,873

alert("abc (def,ghi) jkl (mno,pqr) stu (vwx, yz)".replace(/(\(.*?),(.*?\))/g, "$1 $2"))
Ответить с цитированием
  #5 (permalink)  
Старый 09.05.2010, 21:50
Аспирант
Отправить личное сообщение для YISHIMITSY Посмотреть профиль Найти все сообщения от YISHIMITSY
 
Регистрация: 04.11.2008
Сообщений: 61

Octane, во, то что нужно, спасибо большое! надо мне учить регЭкспы))
Ответить с цитированием
  #6 (permalink)  
Старый 06.06.2010, 01:34
Аспирант
Отправить личное сообщение для YISHIMITSY Посмотреть профиль Найти все сообщения от YISHIMITSY
 
Регистрация: 04.11.2008
Сообщений: 61

блин, а как мне копировать подстроку совпадающую с указанным выражением и записать её в переменную?
Ответить с цитированием
  #7 (permalink)  
Старый 06.06.2010, 06:33
Профессор
Отправить личное сообщение для exec Посмотреть профиль Найти все сообщения от exec
 
Регистрация: 21.01.2010
Сообщений: 1,022

YISHIMITSY, используйте RegExp.match()
Ответить с цитированием
  #8 (permalink)  
Старый 11.06.2010, 13:18
Аспирант
Отправить личное сообщение для YISHIMITSY Посмотреть профиль Найти все сообщения от YISHIMITSY
 
Регистрация: 04.11.2008
Сообщений: 61

спс, разобрался) но тут ещё вопрос возник, если в скобках несколько запятых, и нужно все их заменить, как сделать? выше приведённый регЭксп работает только для одной на каждую скобку...
Ответить с цитированием
  #9 (permalink)  
Старый 11.06.2010, 13:51
Профессор
Отправить личное сообщение для exec Посмотреть профиль Найти все сообщения от exec
 
Регистрация: 21.01.2010
Сообщений: 1,022

Пока в голову приходит только это:

var str = 'aa (xx, dd, ee), f gg (hh, dd, pp)';
x = str.split(/\(|\)/g);
for (var i = 1; i < x.length; i += 2) x[i] = '(' + x[i].replace(/,/g, '') + ')';
x = x.join('');
alert(x);
Ответить с цитированием
  #10 (permalink)  
Старый 11.06.2010, 14:18
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,123

а такой вариант?
var str = 'aa (xx, dd, ee), f gg (hh, dd, pp)';
str = str.replace(/(\(.*?\))/g, function (a,b){return b.replace(/,/g, '')})
alert(str);
Ответить с цитированием
Ответ



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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Обработка строки запроса после решётки (www.сайт.ru/#123) constantant Общие вопросы Javascript 27 21.01.2011 00:07
Обработка адресной строки... demix Общие вопросы Javascript 1 14.02.2010 20:06
Отфильтровать строки в таблице по заданным критериям Hag1989 Общие вопросы Javascript 0 03.12.2009 02:06
обработка строки badfard Общие вопросы Javascript 2 08.11.2009 17:21
Для события onCLick получить индекс строки и объект грида. progi2007 ExtJS 4 05.08.2009 11:31