javascript - 这个验证函数有什么问题?

标签 javascript

我无法使用此正则表达式/^(?(\d{3}))?[..-/]?(\d{3})[.-/]?(\d {4})$/;前三位数字放在括号 (xxx) xxx-xxxx 中。我尝试使用 if/else 循环测试电话号码,但有些东西不起作用,我找不到我做错了什么。感谢您的帮助。

function validatePhone() {
    var pNumber = document.getElementById("phoneprompt").value;
    var regex = /^\(?(\d{3})\)?[\.\.-\/]?(\d{3})[\.\-\/ ]?(\d{4})$/;

    if (regex.test(pNumber)) {
        document.getElementById("phoneprompt").innerHTML = "<img src=\"greencheck.png\" />";
        return (true);
    } else {
        document.getElementById("phoneprompt").innerHTML = "<img src=\"redcheck.png\" />&nbsp;Phone numbers must be in (xxx) xxx-xxxx format"; 
        return (false);
    }
}

最佳答案

除了正则表达式的问题,你不能设置输入字段的 innerHTML,所以

function validatePhone() {
  var el = document.getElementById("phoneprompt"),
    pNumber = el.value,
    regex = /^\(?(\d{3})\)?\s?[\.\.-\/]?(\d{3})[\.\-\/ ]?(\d{4})$/,
    valid = regex.test(pNumber);

  if (valid) {
    document.getElementById("phonepromptmsg").innerHTML = "<img src=\"greencheck.png\" />";
  } else {
    document.getElementById("phonepromptmsg").innerHTML = "<img src=\"redcheck.png\" />&nbsp;Phone numbers must be in (xxx) xxx-xxxx format";
  }

  return valid;
}
<input id="phoneprompt" onchange="validatePhone()" />
<span id="phonepromptmsg"></span>
<br />
<input type="button" onclick="validatePhone()" value="Test"/>

关于javascript - 这个验证函数有什么问题?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30339733/

相关文章:

javascript - 在 thymeleaf 上动态更改表单的操作

javascript - 循环遍历对象数组,检查值是否存在,返回相反的值/Javascript

年间隔的 Javascript 下拉菜单

javascript - Silverlight 不正确地传递 JSON 对象?

javascript - 弹出 slider 在 IE 中不起作用。我的代码有什么问题?

javascript - Phonegap android中的背景声音

javascript - jquery:厌倦了 css().css().css()

javascript - 如何在javascript中保持插入顺序?

javascript - jQuery 选择 : Multiselect with remote data

javascript - 如何使用 JSON 数组中的值更改 $.get 中的数据元素?