Страницы

понедельник, 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, ...