Laravel валидатор регулярное выражение: проверить все в формате с разделителями-запятыми - PullRequest
0 голосов
/ 27 июня 2018

Я пытаюсь заставить валидатор Laravel проверять строку следующего формата: ключ с разделителями-запятыми: пары значений

abs : xyz, fgh:abc {,.....}

Мое регулярное выражение выглядит так:

^((,)*((\s?\w+:\d+)+))$

Я использую его для соответствия ,ok:2 на 'fail, ok: 2'. Проходит, так как есть один матч. Мне нужно, чтобы он потерпел неудачу, если любое из значений, разделенных запятыми, имеет неправильный формат «ключ: значение».

Я использую это регулярное выражение в PHP под управлением preg_match (поскольку я пытаюсь использовать его в Laravel в качестве шаблона проверки регулярных выражений).

Мне нужен валидатор для ошибки ID ЛЮБОЙ из значений, разделенных запятыми, это не ключ: пара значений

1 Ответ

0 голосов
/ 28 июня 2018

Регулярное выражение, которое не выполняется, если входная строка не содержит правильный список ключ: пары значений могут выглядеть следующим образом:

^(?:\s*\w+\s*:\s*\w+\s*(?:,\s*|$))+$

Демо

Идея здесь в том, чтобы сопоставить с начала ^ до конца $ повторение обозначенного ключа: схема пары значений с необязательным пробелом - разделенная запятой или удар по конечной позиции.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...