2017-02-22 19 views
-3

Я хочу, чтобы проверить действительный номер контакта: -Как проверить действительный номер контакта в PHP

  • Номер может или не может начаться со знаком +.
  • Номер может содержать space и знак дефиса (-).
  • Не должно быть знака последовательного дефиса (-).
  • Там не должно быть никаких других алфавитов, специальных символов и т.д.

Пример допустимого контактного номера составляет + 91-8341239834 или +91 033 2664 3271

Число не должно превышать 20 символов.

Как это сделать?

вот мой код до сих пор: -

preg_match('/^[0-9 .\-]+$/i', $number) 
+0

Для США нет На основании фот один номер, проверьте: http://stackoverflow.com/questions/123559/a-comprehensive-regex-for-phone-number-validation/ – Clomp

+0

Возможный дубликат [Полное регулярное выражение для проверки номера телефона] (http: // stackoverflow.com/questions/123559/a-comprehensive-regex-for-phone-number-validation) – miken32

+0

@Clomp, это приложение не для телефонных номеров в США. – Saswat

ответ

1

Вы можете попробовать /^\+?(?:[0-9 ]{1,20}|([-])(?!\1))+$/ или /(\+?[0-9 ]|([-])(?!\2))*$/ если PREG поддерживает начало и конец якоря теги или, возможно, /\+?(?:[0-9 ]{7,20}|([-])(?!\1))+/. Это регулярное выражение с ^ и $, похоже, удовлетворяет всем вашим требованиям, как изначально указано.

  • + 9 2344235 23244 # матч
  • + 9-2344235-23244 # матч
  • +923212312412424 # матч
  • 1231 231 23123213 # матч
  • 9--232314 # не ровня
  • 82foo23123bar # не ровня