Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   обработка строки.. (https://javascript.ru/forum/misc/9303-obrabotka-stroki.html)

YISHIMITSY 09.05.2010 21:31

обработка строки..
 
Есть строка текста содержащая круглые скобки, нужно заменить все запятые в строке находящиеся внутри скобок на пробелы, причём скобок несколько. Незнаю как должен выглядеть регЕксп в данном случае.. подскажите пожалуйста!

Octane 09.05.2010 21:34

http://javascript.ru/RegExp

YISHIMITSY 09.05.2010 21:38

блин, наверное оч туплю... не могу найти там подходящее
str = str.replace(/,/g, " "); - меняет все запятые, а как обратится тока к тем которые внутри круглых скобок? В одном выражении это можно сделать или надо разбивать на подстроки?

Octane 09.05.2010 21:45

alert("abc (def,ghi) jkl (mno,pqr) stu (vwx, yz)".replace(/(\(.*?),(.*?\))/g, "$1 $2"))

YISHIMITSY 09.05.2010 21:50

Octane, во, то что нужно, спасибо большое! надо мне учить регЭкспы))

YISHIMITSY 06.06.2010 01:34

блин, а как мне копировать подстроку совпадающую с указанным выражением и записать её в переменную?

exec 06.06.2010 06:33

YISHIMITSY, используйте RegExp.match()

YISHIMITSY 11.06.2010 13:18

спс, разобрался) но тут ещё вопрос возник, если в скобках несколько запятых, и нужно все их заменить, как сделать? выше приведённый регЭксп работает только для одной на каждую скобку...

exec 11.06.2010 13:51

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

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);

рони 11.06.2010 14:18

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


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