Регулярное выражение для проверки мобильного
Всем привет! Только начинаю работать с 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, время: 02:49. |