Регулярное выражение для соответствия 7-12 цифрам; может содержать пробел или дефис - PullRequest
0 голосов
/ 19 января 2010

Я уже некоторое время пытаюсь решить проблему с регулярными выражениями PHP, но я просто не могу это сделать. Мне нужно написать регулярное выражение, которое будет соответствовать от 7 до 12 цифр (0,9), и, возможно, между соседними цифрами может быть либо один дефис, либо один пробел. Это то, что я до сих пор ...

$match1 = preg_match('/^\d[0-9\-\s]{5,10}\d$/', $number);
$match2 = preg_match('/(-\s|\s-|--|\s\s)/', $number);

Как вы видите, мне нужно использовать две разные проверки, но мне все равно этого недостаточно, поскольку я могу ввести эту строку: "1-2-3-4-5", и она все равно будет проходить, потому что всего 9 символов, но должен потерпеть неудачу, потому что есть только 5 цифр.

Любая помощь по этому вопросу была бы отличной, спасибо!

Ответы [ 4 ]

2 голосов
/ 19 января 2010

Как насчет:

/^(\d[-\s]?){6,11}\d$/
2 голосов
/ 19 января 2010

Попробуйте это регулярное выражение:

/^\d(?:[-\s]?\d){6,11}$/

Это позволяет использовать от семи до двенадцати цифр, которые могут быть разделены дефисом или пробелом.

1 голос
/ 19 января 2010
^(?:\d[-\s]?){6,11}\d$
0 голосов
/ 19 января 2010

Попробуйте это регулярное выражение:

\d([-\s]?\d){6,11}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...