2016-03-03 3 views
0

Так как часть школьной работы, мне нужно проверить номер телефона в java-скрипте. Я просмотрел несколько страниц, но ни один из них не был в том формате, который мне нужен, и я не смог преобразовать его в один. Мне нужно проверить, был ли введенный номер стандартным: начинается с 0, имеет только цифры и что после первых трех букв появляется тире. Пример: 052-7221945 Мне нужен такой номер, который нужно принять. Помощь будет принята с благодарностью.Проверка номера телефона в javascript

+5

Добро пожаловать в StackOverflow! Мы не будем делать домашнее задание для вас. Пожалуйста, покажите нам искренние усилия, которые вы предприняли для решения проблемы самостоятельно, и мы поможем вам решить проблемы, с которыми вы сталкиваетесь. Подробнее о том, как работает этот сайт, читайте в справочных документах. (Http://stackoverflow.com/help/asking) – Blazemonger

+0

Удачи вам в образовании. Это понадобится вам. –

ответ

0
<script> 
function Myfuc() { 
    var x = document.forms[0]["mobile"].value; 
    var z = document.forms[0]["mobile1"].value; 
if(x == null || x == '') 
    { 
     alert("Field canot be empty"); 
     return false; 
    } 

    if(x[0]!=0) // Starting with zero 
    { 
     alert("Mobile number should start with Zero"); 
     return false; 
    } 
    var y=isNaN(x); // Checking numerals in first text box 
    if(y == true) 
    { 
     alert("Integers only accepted"); 
     return false; 
    } 
    var z1=isNaN(z); // Checking numerals in first text box 
    if(z1 == true) 
    { 
     alert("Integers only accepted"); 
     return false; 
    } 

    } 
</script> 

<form onsubmit="Myfuc()"> 
Mobile : <input type="text" id="mobile" name="mobile" style="width:40px;" maxlength=3> - 
<input type="text" name="mobile1" maxlength=7> 

<input type="submit" value="Click" name="sub" > 

</form> 

Все, что вы просили здесь !!!, проведенное на 1 hr для этого и начинающего imma, не волнуйтесь, код работает хорошо :-)

+0

Большое спасибо! Я использовал этот код и отформатировал его на сайте, и после некоторой работы он, наконец, работал, как будто я хотел его ^^ :))) –

0

Вы можете использовать это выражение reg. Я не слишком хорош с выражениями reg, но это может работать в вашем случае.

0\d{2}-\d{7} 

/* start match with 0 
    check for 2 additional digits 
    check for hyphen 
    check for 7 additional digits after hyphen 
*/ 
0

Я также сосать при создании выражений регулярных выражений; однако вы всегда можете сделать что-то вроде этого:

var str = document.getElementById('myInput').value, 
numberOnly = str.replace(/-/g, ''), 
errors = [], i; 

if (isNaN(numberOnly)) { 
    errors.push('You must use numbers!'); 
} else if (str.split('-')[0].length !== 3 || str.split('-')[1] !== 7 || numberOnly > 10) { 
    errors.push('Invalid Format!'); 
} else { 
    console.log(numberOnly + ' is ok!'); 
} 

if (errors) { 
    for (i = 0; i < errors.length; i++) { 
     console.log(i + '. ' + errors[i]); 
    } 
} 

Это просто проверка каждой части строки, которая отправлена.

Сначала он проверяет, чтобы увидеть (после удаления дефиса), что представленное значение на самом деле является числом.

Во-вторых, он разбивает строку пополам, чтобы проверить, имеет ли начало строки 3 символа, а затем, если конец строки имеет 7 символов; наконец, он проверяет, слишком ли велико число ... и т. д., вы даже можете проверить, слишком ли он слишком маленький.

Если вы когда-нибудь придумали достойное регулярное выражение, вместо этого вы можете использовать оператор switch, чтобы поймать ошибки (если они есть).

Я думаю, что можно было бы выглядеть, [0-9] {3} (-) [0-9] {7} или что-то в этом роде.

-

Я работаю с PHP на некоторое время, так что я забыл, если «длина» возвращает число, или фактический байтовый размер символа, например, «é» - 2 байта.

EDIT:

Чтобы проверить, если первый символ строки является "0", вы всегда можете сделать:

if (str.length > 0 && str.charAt(0) != 0) { console.log('error'); } 
Смежные вопросы