Регулярное выражение для проверки мобильного
Всем привет! Только начинаю работать с JS, по сей причине довольно глупый и простой вопрос.
Мне нужно с помощью регулярного выражения проверить правильность введенного моб. телефона. Телефон должен вводится российский, т.е. формат следующий: 79nnnnnnnnn Т.е. ограничение по символам - 11, только цифры, первая 7, вторая - 9. Буду очень признателен за помощь с регуляркой! Заранее благодарен |
<!DOCTYPE HTML> <html> <head> <style> input:invalid { color: #f00; } </style> </head> <body> <input pattern="79\d{9}" /> </body> </html> |
Спасибо за овтет! Мне важно именно на JS это реализовать
|
Да хоть на Бейсике, шаблон при этом будет тот же самый - 79\d{9}.
Или вопрос нужно ставить не о рег. выражении, то есть шаблоне, а о том как проверить на JS. Это надо? |
Смотрите, у меня сейчас так:
if (phone.match(/^79\d{9}$/i)){ $("#phone").css('border', '0px'); $('#errorBlock').css('display', 'none'); $('input:submit').removeAttr("disabled"); }else{ $("#phone").css('border', 'red 1px solid'); $('#errorBlock').css('display', 'block'); $('#errorBlock').html('Номер мобильного телефона введен не верно!'); $('input:submit').attr("disabled", true); } Но работает не корректно, скрипт выдает ошибку, только если меньше 10 символов введено... по маске он не работает |
Цитата:
|
Очередной "аут"? Очередной кошмар с сервером форума.
Для цифр не существует понятия верхний или нижний регистр, модификатор i не нужен. |
laimas,
атака ботов, сервер работает в режиме защиты |
Цитата:
Короткое принял Очередной "аут" без проблем, а то, что хотел отослать, не так и большое, ни в какую. |
Как правильно?
|
Цитата:
|
Цитата:
Кстати, принуждать пользователя вводить номер строго так как вам нравится, не лучшее решение. |
Цитата:
|
Цитата:
|
Мне важен строгий формат 79nnnnnnnnn
В дальнейшем на это поле будет работать скрипт, с СМС верификацией. |
Цитата:
var str='79123456789'; if (/^79\d{9}$/.test(str)) { alert('Ok'); } else { alert('Error'); }; |
Цитата:
А вот для пользователя телефон давно уже сначала стиль жизни и только затем устройство для связи. А в жизни человек всегда приобретает навыки, привычки. Кто-то лучше воспринимает номер как 7 999 999 99 99, а кому-то удобнее 7 999 999-99-99. Так ли важна +7 или же можно и 8? Вы пытаетесь сделать невозможное - отучить человека от его привычек. А стоит ли это делать? Ведь если проверка сценарием, что же мешает перед проверкой по шаблону удалить все не цифровые символы разрешенные наряду с цифрами для ввода? Это ведь не сложно, и записать в базу только цифры также не сложно будет. Либо добавляйте удобства для пользователя - 79 автоматом подставляется в шаблон и вводить не требуется, и все остальное по шаблону, автоматически вырезая не цифры. |
все равно не работает, позволяет ввести больше цифр и не в этом формате... или я что-то не понимаю...
|
Цитата:
|
1234567890
|
Сейчас вот так у меня:
var phone = $("#phone").val(); if (/^79\d{9}$/.test(phone)) { Пропускает даже 1234567890 и дальше все цифры... какой угодно длинны значение =) |
<input type='text' id = 'phone' onchange='testPhone();'> <script src="https://ajax.googleapis.com/ajax/libs/jquery/1/jquery.min.js"></script> <script> function testPhone() { var phone = $("#phone").val(); if (/^79\d{9}$/.test(phone)) { alert('Ok'); } else { alert('Error'); }; } </script> |
DVMade,
вы что-то не договариваите ... <!DOCTYPE html> <html> <head> <title>Untitled</title> <meta charset="utf-8"> <style type="text/css"> .red{ background-color: #FF3333; } </style> <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.12.4/jquery.min.js"></script> <script> $(function() { $("#phone").on("input",function() { this.className = /^79\d{9}$/.test(this.value) ? "" : "red"; }) }); </script> </head> <body> <input id="phone" name=""> </body> </html> Цитата:
|
Цитата:
var str='1234567890'; if (/^79\d{9}$/.test(str)) { alert('Ok'); } else { alert('Error'); }; Проверка не проходит. :stop: |
Все заработало, проблема оказалась в том, что имя переменной у меня соответствовало имени I html-элемента, значение которого и принимала переменная phone. Изменил ей имя и все пошло) Всем спасибо за ответы! =)
|
vanished
|
Часовой пояс GMT +3, время: 09:59. |