Задать вопрос

Как заменить часть текста в переменной частью текста из другой переменной?

Доброго дня!
Есть строковая переменная addres c текстом " Калинина 152, Город, Регион " и вторая переменная с текстом " Калинина 152 бла бла #325 "
Как заменить текст в первой переменной - Калинина 152 (всё до первой запятой)
на текст из второй - Калинина 152 бла бла (всё до #)
  • Вопрос задан
  • 151 просмотр
Подписаться 1 Простой Комментировать
Решения вопроса 1
john36allTa
@john36allTa
alien glow of a dirty mind
let a = ['Калинина 152, Москва, Россия', 'каленова 81, гдетов, россия'],
	b = ['Калинина 152 домофон к2534 зовут Инокентий #827', 'Каленова 81 никого нет дома, оставить у двери #274']
const wccustoms = s => s.replace(/^[^,]*/, m => {
		let r = new RegExp('^' + m,'i'),
			v = b.find(v=>r.test(v))
		return v ? v.substr(0,v.indexOf('#')) : m
  })
for (addr of a)
	console.log(wccustoms(addr))

А если серьёзно то
const result = string2.substr(0,string2.indexOf('#'))+string1.substr(string1.indexOf(',',))
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 2
@Karpion
1) Создать третью переменную. Записать в неё часть второй переменной, какую Вам надо.
2) Заменить в первой переменной что надо на что надо.
Третью переменную можно и не создавать - а сразу подставить результат выделения_части в выражение во втором пункте.

В обоих случаях - выделить нужную часть можно как с помощью regex (этот вариант более универсален - например, когда ограничивающим символом м.б. любой из списка, а не конкретный - запятая или диез), так и сканированием переменных посимвольно (этот вариант - с функциями indexOf и substr; а можно сканировать самостоятельно, но встроенные в язык функции лучше).
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы