Отлов мобильного
Всем привет! Ребята, подскажите пожалуйста, не могу допилить регулярку. Надо искать мобильные телефоны. Сделал так.
/(\+7|8)(\d{10})/
Эта регулярка выбирает только такие: +79028380801; 9028380801 (вот тут номер без восьмерки, а надо как то сделать 8-ку), и чтобы из таких 8-(922)-24-42-700, сделался такой 89222442700, тире тоже хотелось бы сразу все леквидировать. В общем чтобы номера были однообразные 8919 и т.д. либо + 7919 и т.д., чтобы не было ни скобок ни тире. Надеюсь понятно изложил)) Спасибо заранее всем! |
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="content-type" content="text/html; charset=utf-8" />
<title>Спойлеры</title>
<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.9.0/jquery.min.js"></script>
<style>
*{
margin:0;
padding:0;
outline: 0;
}
input:hover {
outline: none;
}
input{
margin-left: 50px;
margin-top: 10px;
}
input[type="text"]:first-child{
margin-bottom: 10px;
}
input[type="button"] {
display: block;
width: 150px;
height:30px;
margin-bottom: 10px;
}
</style>
</head>
<body>
<input name="telnumber" type="text">
<input name="telbutton" type="button" value='Нажми меня'>
<input name="telnumberresult" type="text">
<script>
var button = document.getElementsByName("telbutton")[0];
button.onclick = function(){
var telNumber = document.getElementsByName("telnumber")[0].value;
var telNumberResultElem = document.getElementsByName("telnumberresult")[0];
var number=telNumber.replace(/\D/gm,'');
if (number.length>11 || number.length<10)
alert('Вы неправильно ввели моб. телефон');
else if((number[0]!=='8' && number[0]!=='7')&&(number.length=='11'))
alert('Вы неправильно ввели моб. телефон');
else telNumberResultElem.value = number;
}
</script>
</body>
</html>
|
Спасибо, но вот правда у меня куча телефонов через точку с запятой, выглядит так:
+7(919)7076922;89504412323;+791543435454 как их тоже обработать? |
Цитата:
|
alert( "+71233332433434434344;87474883839399;8(757) 94-994949-4994;8-0505-99595-5885858" .replace(/\+7/g, "8") .replace(/\(|\)|-|\s+/g, "") ) прогони даные по этой фигне, а потом сматчишь обычной. Если сразу матчить, будет зело сложная конструкция, что-то типа /(+7|8|)?\(?(\d-?){3}\)?(\d-?){7... ненадежно это все, да и лень мне цифры считать для образца:). Если запостишь кусок из базы с верными и неверыми случаями, полный комплект(и пометь как-нибудь верные и неверные), может напишу. |
ох, ну ладно! Спасибо всем на этом.
|
| Часовой пояс GMT +3, время: 02:40. |