Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 24.06.2018, 17:42
Аспирант
Отправить личное сообщение для fedushok Посмотреть профиль Найти все сообщения от fedushok
 
Регистрация: 18.09.2017
Сообщений: 45

Несколько замен в строке
Приветствую всех!

Как выполнить несколько замен в строке? Мой пример,
строка - "func1(a,b) func2(c,a,b)"
замене подлежит подстрока - "a,b" (где a и b - вещественные числа)
строка-заменитель - "x,y".

Последний раз редактировалось fedushok, 24.06.2018 в 17:51.
Ответить с цитированием
  #2 (permalink)  
Старый 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"));
Ответить с цитированием
  #3 (permalink)  
Старый 24.06.2018, 17:59
Аспирант
Отправить личное сообщение для fedushok Посмотреть профиль Найти все сообщения от fedushok
 
Регистрация: 18.09.2017
Сообщений: 45

Дело в том, что a и b - это вещественные числа, и чему они равны не известно.
Ответить с цитированием
  #4 (permalink)  
Старый 24.06.2018, 18:03
Аватар для Aetae
Тлен
Отправить личное сообщение для Aetae Посмотреть профиль Найти все сообщения от Aetae
 
Регистрация: 02.01.2010
Сообщений: 6,590

Если всегда последние, то:
.replace(/-?\d+,-?\d+\)/g, "x,y")
__________________
29375, 35
Ответить с цитированием
  #5 (permalink)  
Старый 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"));
Ответить с цитированием
  #6 (permalink)  
Старый 24.06.2018, 18:22
Аспирант
Отправить личное сообщение для fedushok Посмотреть профиль Найти все сообщения от fedushok
 
Регистрация: 18.09.2017
Сообщений: 45

Благодарю. Как иногда полезно прибегать к помощи на форуме!
1. Сильно ли повлияет на производительность если я добавлю "просмотр вперёд" -.replace(/-?\d+,-?\d+(?=\))/g, "x,y");? Приведённый пример замещает последнюю скобку, чего быть не должно. Или сделать замену со скобкой позади - .replace(/-?\d+,-?\d+\)/g, "x,y)");?
2. Вам удалось выделить в моём примере частный случай решения задачи (за что еще раз благодарю), но душа просит что-то общее. Что если задней скобки не будет? Выражение "a,b" железно идет после "func1(".
Ответить с цитированием
  #7 (permalink)  
Старый 24.06.2018, 18:28
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,134

fedushok,
если a и b известны, сделайте из них new RegExp
Ответить с цитированием
  #8 (permalink)  
Старый 24.06.2018, 18:32
Аспирант
Отправить личное сообщение для fedushok Посмотреть профиль Найти все сообщения от fedushok
 
Регистрация: 18.09.2017
Сообщений: 45

Сообщение от рони Посмотреть сообщение
fedushok,
условия задачи не конкретные, ... !!!
alert("func1(100,900) func2(c,5,1)".replace(/\d+,\d+/g, "x,y"));
Дело в том, что a и b во всем выражении одинаковые. Как учесть, что замене подлежит все пары чисел, которые в точности совпадают с двумя вещественными числами, которые через запятую идут сразу после "func1("?
Ответить с цитированием
  #9 (permalink)  
Старый 24.06.2018, 18:35
Аспирант
Отправить личное сообщение для fedushok Посмотреть профиль Найти все сообщения от fedushok
 
Регистрация: 18.09.2017
Сообщений: 45

Сообщение от рони Посмотреть сообщение
fedushok,
если a и b известны, сделайте из них new RegExp
Сообщение от fedushok Посмотреть сообщение
Дело в том, что a и b - это вещественные числа, и чему они равны не известно.
Известно, что они идут сразу после "func1(", а затем далее еще один раз
Ответить с цитированием
  #10 (permalink)  
Старый 24.06.2018, 18:41
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,134

fedushok,
сколько func всего?
Ответить с цитированием
Ответ



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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Найти в строке комбинацию символов rodiony4 Элементы интерфейса 4 03.10.2016 04:52
При повторении несколько раз animate - рассинхрон... Petja jQuery 4 21.05.2013 12:58
Изменение юрл адреса в адресной строке браузера (Sandr) Общие вопросы Javascript 12 25.08.2011 09:24
Несколько созданных элементов располагаются в одной строке. Как этого избежать? Hold Events/DOM/Window 1 21.01.2011 23:52
Как определить какого типа данные в строке den9000 Общие вопросы Javascript 7 07.12.2010 10:57