EdMSL
@EdMSL
Free Developer

Как правильно написать регулярку для многострочного текста по шаблону ключ=значение?

Нужна регулярка, которая будет проверять многострочную строку из поля TextArea.
Шаблон прост:
ключ1=значение1
ключ2=значение2
ключ3=значение3

  • Разделитель строго = (знак "равно").
  • Ключ и значение могут содержать любые символы кроме разделителя.
  • Перед и после разделителя не должно быть пробелов.
  • Не должно быть двух разделителей подряд.
  • Не должно быть больше одного разделителя в каждой подстроке.
  • Каждая подстрока начинается и заканчивается любым символом кроме разделителя.

Я написал такую регулярку:
https://regex101.com/r/HdI3Wx/1
Используется так:
const result = /^[^=][^=]*(?<=\S)=[^\s=][^=]*$/gm.test(value);

Но в ней есть как минимум одна проблема. Если написать так:
текст
ключ=значение

так:
ключ=значение
текст
ключ=значение

или так:
ключ=значение
текст

то это будет валидным результатом.
Вся суть в том, что в дальнейшем строка преобразуется в объект, разбиваясь сначала на подстроки по разделителю "\n", затем на ключ\значение по разделителю "=".

Как правильно написать выражение?
  • Вопрос задан
  • 66 просмотров
Пригласить эксперта
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы
18 апр. 2024, в 11:47
30000 руб./за проект
18 апр. 2024, в 11:46
5000 руб./за проект
18 апр. 2024, в 11:43
10000 руб./за проект