Просмотр полной версии : Проверка правильности номера js
SultanOFF
09.03.2010, 17:44
Здравствуйте. Подскажите пожалуйста функцию для проверки номера телефона, и функцию которая бы недопускала ввод букв, только цифр(и + -). В js мало разбираюсь поэтому прошу помощи на форуме.
Deathdreams
09.03.2010, 17:44
сама функция:
function phone(element){
while(element.value.match(/[^0-9_]/)){
element.value = element.value.replace(/[^0-9]/, '');
}
return true;
}
Использование:
<input type="text" name="body" id="body" onkeyup="phone(this);" onkeypress="phone(this)" onpaste="phone(this);" value="">
тут можно увидеть работу этой функции: antichat-sms.ru
antichat-sms.ru
я задействовал JS
---------
upd.
сама функция:
function phone(element){
while(element.value.match(/[^0-9_]/)){
element.value = element.value.replace(/[^0-9]/, '');
}
return true;
}
Использование:
<input type="text" name="body" id="body" onkeyup="phone(this);" onkeypress="phone(this)" onpaste="phone(this);" value="">
еще не заебался пиарица в каждом посте? Устроил тут каталог ссылок.
Deathdreams
09.03.2010, 18:17
еще не заебался пиарица
пиар ?
а какую пользу мне приносит сервис ?
может ты ещё скажешь, что он напичкан фреймами, рекламой ?
или я рублю миллионы с нулевой благотворительности?
я кинул сайт для того, чтобы можно было наглядно посмотреть, как это работает.
На сайт заходить не обязательно, код , как видишь, выложил отдельно.
Для таких наркоманов как ты, подправил верхний пост.
SultanOFF
09.03.2010, 18:53
Deathdreams спасибо, функция работает ок. И сайт твой отличный, смс дошла ;) А можешь ты подсказать функцию, которая бы еще проверяла минимальное количество символом?
<input type="text" oninput="if(this.value.length<10){alert('Длинна введённого телефона меньше 10');}" name="body" id="body" onkeyup="phone(this);" onkeypress="phone(this)" onpaste="phone(this);" value="">
Deathdreams
09.03.2010, 19:16
Deathdreams спасибо, функция работает ок. И сайт твой отличный, смс дошла ;) А можешь ты подсказать функцию, которая бы еще проверяла минимальное количество символом?
var min = 6; //минимальное значение
input = document.getElementById('ТУТ_ID_ПОЛЯ').valu e;
if( input.lenght < min ) alert('Минимальное количество знаков - '+min);
ТУТ_ID_ПОЛЯ заменить на нужный
var min = 6; //минимальное значение
input = document.getElementById('ТУТ_ID_ПОЛЯ').valu e;
if( input.lenght < min ) alert('Минимальное количество знаков - '+min);
ТУТ_ID_ПОЛЯ заменить на нужный
чем тебе моя запись не понравилась? :)
Deathdreams
09.03.2010, 19:32
чем тебе моя запись не понравилась? :)
я не заметил, ты на пару секунд опередил )
А если отключить выполнение сценариев, то никакие проверки не прокатят.. может быть лучше на php это реализовать с регулярками?
SultanOFF
09.03.2010, 19:53
спасибо, только повесил на onblur, ибо после каждого нажатия выводит сообщение)
а на php пока нет смысла, на данный момент этого достаточно
SultanOFF
10.03.2010, 18:11
дабы не плодить темы, хочу задать еще один вопрос: можно ли посредством javascript преобразовать строку вида 79131234567 в такой шаблон +7 913 1234567, и если да, то как?
Pashkela
10.03.2010, 18:37
<script type="text/javascript">
function formatPhone(phonenum) {
var regexObj = /^(?:\+?1[-. ]?)?(?:\(?([0-9]{3})\)?[-. ]?)?([0-9]{3})[-. ]?([0-9]{4})$/;
if (regexObj.test(phonenum)) {
var parts = phonenum.match(regexObj);
var phone = "";
if (parts[1]) { phone += "+7 (" + parts[1] + ") "; }
phone += parts[2] + "-" + parts[3];
return phone;
} else {
return phonenum;
}
}
alert(formatPhone('9131234567'));
</script>
SultanOFF
10.03.2010, 20:27
почему если Я делаю вот так onchange="formatPhone(this.value);" то функция не работает, просто при загрузки страницы появляется всплывающее окно +7 (913) 123-4567
А если отключить выполнение сценариев, то никакие проверки не прокатят.. может быть лучше на php это реализовать с регулярками?
<html>
<form name="form1" method="post" action="">
<input name="num" type="text" id="num">
<input type="submit" name="Submit" value="Подтвердить">
</form>
</html>
<?php
$num=$_POST['num'];
if(preg_match('/\+[0-9]/',$num))
{
echo "good";
}else{
echo "bad";
}
?>
почему если Я делаю вот так onchange="formatPhone(this.value);" то функция не работает, просто при загрузки страницы появляется всплывающее окно +7 (913) 123-4567
<script type="text/javascript">
function formatPhone(phonenum) {
var regexObj = /^(?:\+?1[-. ]?)?(?:\(?([0-9]{3})\)?[-. ]?)?([0-9]{3})[-. ]?([0-9]{4})$/;
if (regexObj.test(phonenum)) {
var parts = phonenum.match(regexObj);
var phone = "";
if (parts[1]) { phone += "+7 (" + parts[1] + ") "; }
phone += parts[2] + "-" + parts[3];
return phone;
} else {
return phonenum;
}
}
///вызов функции просто закомментируем его
//alert(formatPhone('9131234567'));
//и вуаля
</script>
и тут попробуем вот так
onchange="alert(formatPhone(this.value));"
;) ;)
SultanOFF
11.03.2010, 12:47
да что ж такое, сделал все как вы сказали, и теперь вообще ничего не происходит :(
vBulletin® v3.8.14, Copyright ©2000-2026, vBulletin Solutions, Inc. Перевод: zCarot