Страницы

понедельник, 8 октября 2012 г.

Валидация телефонного номера

Поискал в сети, всё что-то не подходящее, написал своё.
Реализация на JavaScript:
var phone = function (str0) {
var str = str0||"",
re1 = /^((\+?7)|8)[-\s]?(\(\d{3}\)|\d{3})[-\s]?\d{3}[-\s]?\d\d[-\s]?\d\d$/,
re2 = /^(8?[-\s]?(\(\d\d[-\s]?\d\d\)|(\d\d[-\s]?\d\d)))?[-\s]?\d\d[-\s]?\d\d[-\s]?\d\d$/;
if (re2.test(str) || re1.test(str)) return true;
else return false;
}

Первое правило проверяет мобильные номера, например:
8(916)3267527
8(916)326-75-27
8 (916) 326 75 27
8 916 326-75-27
8 916 326 75 27, ...
тоже самое, но с +7.

Второе правило проверяет городские (областные) номера, например:
8(8182)218920
8 8182 21 89 20
8182 218929
218929
21-89-29, ...

4 комментария:

  1. Статья Ок, но фон на сайте отвлекает от контента. Рябит в глазах.

    ОтветитьУдалить
  2. Андрей Денисов9 октября 2012 г., 01:08

    Этим фоном я хотел показать, как мимолётна наша жизнь, все куда-то торопимся, А текст поверх его как что-то вечное, как история.
    Дак кого я обманываю, один из стандартных фонов.

    ОтветитьУдалить
  3. Единственный способ проверки номера - позвонить по нему. А то, что в статье - насилие на пользователями и программистами. Надо просто удалять все нецифры. Но и тут могут быть нюансы ;-)

    ОтветитьУдалить
  4. Андрей Денисов1 декабря 2012 г., 01:57

    Да, в итоге отказался от такой проверки, оставил просто проверку на количество символов + удаление лишних пробельных символов и всяких левых символов.

    ОтветитьУдалить