2015-12-02 2 views
0

не уверен, почему моя проверка регулярного выражения не работает ... если я введу номер, он все еще говорит, что это недопустимое число ... почему? Я пытаюсь проверить недопустимые числа, но если я набираю номер, я получаю также ошибку.regex по телефону не работает - javascript

function validatePhone() { 
 

 
    var phone = document.getElementById("phone1").value; 
 
    if (phone.length === 0) { 
 
    console.log("phone number is required."); 
 
    producePrompt("Phone number is required.", "messagePrompt", "red"); 
 
    return false; 
 
    } 
 

 
    if (!phone.match(/^[0-9]{10}$/)) { 
 
    producePrompt("Please enter a valid Phone number.", "messagePrompt", "red"); 
 
    return false; 
 
    } 
 
    producePrompt("valid Number", "messagePrompt", "green"); 
 
    return true; 
 
} 
 

 
function producePrompt(message, promptLocation, color) { 
 
    document.getElementById(promptLocation).innerHTML = message; 
 
    document.getElementById(promptLocation).style.color = color; 
 
} 
 

 
function remove_msg() { 
 
    producePrompt(" ", "messagePrompt", "red"); 
 
}
<form> 
 
    <p>Please enter your phone number below:</p> 
 
    <input type="tel" name="phone1" id="phone1" placeholder="(000)000-0000" onkeyup="validatePhone()" /> 
 
    <label for="" id="messagePrompt"></label> 
 
    <br> 
 
    <input type="button" value="send message" onclick="validatePhone()" /> 
 
</form>

+0

это регулярное выражение (/^[0-9] {10} $ /) примет 0000000000, но не (000)000-0000 –

ответ

1

Это регулярное выражение будет делать работу для ввода формата (###)###-####

^\([0-9]{3}\)[0-9]{3}\-[0-9]{4}$ 

Но в целом это не очень хорошая идея, чтобы ограничить доступ пользователей к этому очень определенному формату , Я предлагаю вам принять несколько версий номера телефона, в том числе только номера без каких-либо других символов, таких как скобки или дефисы.

+0

Я не думаю, что проблема является регулярным выражением ... хотя я предложил формат ввода на поле ввода, идея состоит в том, чтобы расширить мое регулярное выражение, чтобы принимать другие форматы, но что-то еще не работает ... – Lucky500

+1

@ Lucky500 Вы должны указать свой ожидаемый ввод/вывод. Я не думаю, что другие люди на одной странице с вами. –

+0

Когда я запускаю код, отрезанный и вводя десять целых чисел, я получаю зеленый текст 'Valid number'. Ваш код, кажется, работает отлично для 10 целых чисел без каких-либо других символов –

Смежные вопросы