Регулярное выражение должно аннулировать номер телефона, если все цифры одинаковы. Например - 0000000,1111111,2222222 и т.д. должно быть недействительным. Но, с другой стороны, если я ввожу 11111112, то это должно быть действительным, поскольку оно также содержит другую цифру. Длина регулярного выражения должна быть от 7 до 15.
Я пробовал с этим (?!(\d)\1{6})([0-9]{7,15}), но то же самое не работает должным образом. Если есть лучший способ, пожалуйста, предложите мне то же самое.
Вы можете использовать шаблон положительного просмотра в начале, чтобы утверждать, что существует по крайней мере цифра, следующая цифра которой не совпадает:
^(?=.*(\d)(?=\d)(?!\1))\d{7,15}$
Вы можете использовать один отрицательный просмотр вперед, чтобы исключить те же цифры 0–9, что и в C#, используя \d
может соответствовать больше цифр, чем только 0–9:
^(?!([0-9])\1+$)[0-9]{7,15}$
Шаблон соответствует:
^
Начало строки(?!
Отрицательный просмотр вперед, утверждение, что вправо не
([0-9])\1+$
Захватите цифру 0-9 в группе 1 и повторите ту же цифру, используя обратную ссылку \1
еще раз до конца строки)
Закрыть просмотр вперед[0-9]{7,15}
Сопоставьте от 7 до 15 цифр в диапазоне от 0 до 9.$
Конец строкиПосмотрите демоверсию regex101.
Я знал человека, в чьем телефонном номере повторялась одна и та же цифра.