обработка строки..
Есть строка текста содержащая круглые скобки, нужно заменить все запятые в строке находящиеся внутри скобок на пробелы, причём скобок несколько. Незнаю как должен выглядеть регЕксп в данном случае.. подскажите пожалуйста!
|
|
блин, наверное оч туплю... не могу найти там подходящее
str = str.replace(/,/g, " "); - меняет все запятые, а как обратится тока к тем которые внутри круглых скобок? В одном выражении это можно сделать или надо разбивать на подстроки? |
alert("abc (def,ghi) jkl (mno,pqr) stu (vwx, yz)".replace(/(\(.*?),(.*?\))/g, "$1 $2"))
|
Octane, во, то что нужно, спасибо большое! надо мне учить регЭкспы))
|
блин, а как мне копировать подстроку совпадающую с указанным выражением и записать её в переменную?
|
YISHIMITSY, используйте RegExp.match()
|
спс, разобрался) но тут ещё вопрос возник, если в скобках несколько запятых, и нужно все их заменить, как сделать? выше приведённый регЭксп работает только для одной на каждую скобку...
|
Пока в голову приходит только это:
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);
|
а такой вариант?
var str = 'aa (xx, dd, ee), f gg (hh, dd, pp)';
str = str.replace(/(\(.*?\))/g, function (a,b){return b.replace(/,/g, '')})
alert(str);
|
рони, действительно хороший способ!) но я толком даже не понял как это работает...
|
YISHIMITSY, в этом коде берутся все выражения в скобках и в каждом заменяется запятая на пустую строку через регэксп. Подробнее: replace — замена через функцию.
|
Цитата:
|
можно и без a,b
а это найденная подстрока, b данные в первой () в данном случае они совпадают
var str = 'aa (xx, dd, ee), f gg (hh, dd, pp)';
str = str.replace(/(\(.*?\))/g, function (a){return a.replace(/,/g, '')})
alert(str);
|
| Часовой пояс GMT +3, время: 17:46. |