Я уже давно пытаюсь решить проблему регулярного выражения 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 цифр.
Любая помощь по этому вопросу будет отличной, спасибо!
Как насчет:
/^(\d[-\s]?){6,11}\d$/
Попробуйте это регулярное выражение:
/^\d(?:[-\s]?\d){6,11}$/
Это позволяет от семи до двенадцати цифр, которые могут быть разделены дефисом или символом пробела.
^(?:\d[-\s]?){6,11}\d$
Попробуйте это регулярное выражение:
\d([-\s]?\d){6,11}