电话验证的正则表达式无法正常工作 - javascript

时间:2015-12-02 03:00:29

标签: javascript regex

不确定为什么我的正则表达式验证不起作用...如果我输入一个数字,它仍然说它是一个无效数字......为什么?我正在尝试检查无效数字,但如果我输入数字,我也会收到错误。



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>
&#13;
&#13;
&#13;

1 个答案:

答案 0 :(得分:1)

此正则表达式将为格式(###)###-####

的输入工作
 ^\([0-9]{3}\)[0-9]{3}\-[0-9]{4}$

但总的来说,限制用户使用这种非常具体的格式并不是一个好主意。我建议您接受多个版本的电话号码,绝对只包括没有其他字符的数字,如括号或连字符。