Проверка адреса ограничивает более 3 специальных символов - PullRequest
0 голосов
/ 08 июня 2018

Я работаю с проверяющими адресными полями, и мне нужно некоторое регулярное выражение проверки для отклонения более 3 специальных символов (запятая)

Допустимый формат

New York Marriott Marquis, New York, NY, USA

Неверный формат

New York,# Marriott, Marquis,& New York, NY, USA,
$$$^^^&&&&&&,&&&&&########New York, NY, USA

preg_match('/^[^*|\":<>[\]{}`\\()';@&$]+$/');

preg_match('/[*|\":<>[\]{}`\\()';@&$]/');

preg_match('/^[a-z0-9- ]+$/i');

, но все они не работают так, как мне нужно.

Я пытался с любой помощью будет признателен.Заранее спасибо:)

1 Ответ

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

Попробуйте использовать отрицательный взгляд (?!, который утверждает, что последующее не соответствует ни одному из символов в классе символов 4 раза:

^(?!(?:.*[*|\":[\]{}`\()';@&$,]){4}).+$

Тест Regex

$str = 'New York Marriott Marquis, New York, NY, USA';
preg_match('/^(?!(?:.*[*|\":<>[\]{}`\()\';@&$,]){4}).+$/', $str, $matches);
var_dump($matches);

Php test

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