Как получить конкретное форматирование из textarea?

Всем привет
У меня есть textarea с id input в котором можно вводить любой текст.
Но при вводе текста в таком формате {{ значение 1/значение 2 }} я хочу получать в переменной name значение 1, а в переменной symbol значение 2. Подскажите пожалуйста, как это сделать

Я пробовала делать так
let input = document.getElementById("input");

input.addEventListener("input", function (event) {
  const text = event.target.value;
  const regularExpression = /\{\{\s*(\w+)\s+(\w+)\s*\}\}/gi;

  if (text.match(regularExpression)) {
    let str = text.replace(
      regularExpression,
      (match, name, symbol) => `${name}, ${symbol}`
    );
    console.log(text.match(regularExpression));
    console.log(str);
  }
});
  • Вопрос задан
  • 71 просмотр
Пригласить эксперта
Ответы на вопрос 2
@BackLaN
Вот так делается:

var s = '{{test/qwest}}';


var rexp =  /{{(\w*)\/(\w*)}}/gi;
var lst = rexp.exec(s);
if (lst && lst.length == 3) {
  var name = lst[1];
  var symbol = lst[2];
  console.log(name);
  console.log(symbol);

}

Тестировать регулярные выражения можно => https://regex101.com/
Ответ написан
Комментировать
zkrvndm
@zkrvndm
Архитектор решений
Вам нужно использовать split, чтобы разбить вбитое на 2 части:
txt = '{{ значение 1/значение 2 }}';

arr = txt.split('/'); // Разбиваем строку по делителю в виде слеша
left = arr[0].replace(/^\{\{/, '').trim(); // Берем левую часть и убираем скоби в начале
right = arr[1].replace(/\}\}$/, '').trim(); // Берем правую часть и убираем скобки в конце

console.log(left, right);
Ответ написан
Ваш ответ на вопрос

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

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