24.06.2018, 17:42
|
Аспирант
|
|
Регистрация: 18.09.2017
Сообщений: 45
|
|
Несколько замен в строке
Приветствую всех!
Как выполнить несколько замен в строке? Мой пример,
строка - "func1(a,b) func2(c,a,b)"
замене подлежит подстрока - "a,b" (где a и b - вещественные числа)
строка-заменитель - "x,y".
Последний раз редактировалось fedushok, 24.06.2018 в 17:51.
|
|
24.06.2018, 17:53
|
|
Профессор
|
|
Регистрация: 27.05.2010
Сообщений: 33,134
|
|
fedushok,
alert("func1(a,b) func2(c,a,b)".replace(/a,b/g, "x,y"));
|
|
24.06.2018, 17:59
|
Аспирант
|
|
Регистрация: 18.09.2017
Сообщений: 45
|
|
Дело в том, что a и b - это вещественные числа, и чему они равны не известно.
|
|
24.06.2018, 18:03
|
|
Тлен
|
|
Регистрация: 02.01.2010
Сообщений: 6,590
|
|
Если всегда последние, то:
.replace(/-?\d+,-?\d+\)/g, "x,y")
__________________
29375, 35
|
|
24.06.2018, 18:05
|
|
Профессор
|
|
Регистрация: 27.05.2010
Сообщений: 33,134
|
|
fedushok,
условия задачи не конкретные, ... !!!
alert("func1(100,900) func2(c,5,1)".replace(/\d+,\d+/g, "x,y"));
|
|
24.06.2018, 18:22
|
Аспирант
|
|
Регистрация: 18.09.2017
Сообщений: 45
|
|
Благодарю. Как иногда полезно прибегать к помощи на форуме!
1. Сильно ли повлияет на производительность если я добавлю "просмотр вперёд" -.replace(/-?\d+,-?\d+(?=\))/g, "x,y");? Приведённый пример замещает последнюю скобку, чего быть не должно. Или сделать замену со скобкой позади - .replace(/-?\d+,-?\d+\)/g, "x,y)");?
2. Вам удалось выделить в моём примере частный случай решения задачи (за что еще раз благодарю), но душа просит что-то общее. Что если задней скобки не будет? Выражение "a,b" железно идет после "func1(".
|
|
24.06.2018, 18:28
|
|
Профессор
|
|
Регистрация: 27.05.2010
Сообщений: 33,134
|
|
fedushok,
если a и b известны, сделайте из них new RegExp
|
|
24.06.2018, 18:32
|
Аспирант
|
|
Регистрация: 18.09.2017
Сообщений: 45
|
|
Сообщение от рони
|
fedushok,
условия задачи не конкретные, ... !!!
alert("func1(100,900) func2(c,5,1)".replace(/\d+,\d+/g, "x,y"));
|
Дело в том, что a и b во всем выражении одинаковые. Как учесть, что замене подлежит все пары чисел, которые в точности совпадают с двумя вещественными числами, которые через запятую идут сразу после "func1("?
|
|
24.06.2018, 18:35
|
Аспирант
|
|
Регистрация: 18.09.2017
Сообщений: 45
|
|
Сообщение от рони
|
fedushok,
если a и b известны, сделайте из них new RegExp
|
Сообщение от fedushok
|
Дело в том, что a и b - это вещественные числа, и чему они равны не известно.
|
Известно, что они идут сразу после "func1(", а затем далее еще один раз
|
|
24.06.2018, 18:41
|
|
Профессор
|
|
Регистрация: 27.05.2010
Сообщений: 33,134
|
|
fedushok,
сколько func всего?
|
|
|
|