Поискал в сети, всё что-то не подходящее, написал своё.
Реализация на 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, ...
Реализация на 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, ...
Статья Ок, но фон на сайте отвлекает от контента. Рябит в глазах.
ОтветитьУдалитьЭтим фоном я хотел показать, как мимолётна наша жизнь, все куда-то торопимся, А текст поверх его как что-то вечное, как история.
ОтветитьУдалитьДак кого я обманываю, один из стандартных фонов.
Единственный способ проверки номера - позвонить по нему. А то, что в статье - насилие на пользователями и программистами. Надо просто удалять все нецифры. Но и тут могут быть нюансы ;-)
ОтветитьУдалитьДа, в итоге отказался от такой проверки, оставил просто проверку на количество символов + удаление лишних пробельных символов и всяких левых символов.
ОтветитьУдалить