javascript - 允许用户在文本框中仅添加空格且电话号码不超过 11 个

标签 javascript jquery html

我正在尝试设置具有以下要求的电话字段:

  • 如果输入第一个字母,则可以出现“+”,否则则不会出现
  • 只能是数字或空格
  • 数字不能超过 11 个

我这样做对于数字和空格来说效果很好,但我不确定如何限制 11 个数字。

function validatePhone(phone) {
        var filter = /^(?=.*\d)[\d ]+$/;
        if (filter.test(phone)) {
          return phone;
        } else {
          return phone.slice(0,-1);
}

编辑:

我不想将所有条目都计为 11。我只想计算数字而不是空格,并且总数应为 11 或 10

最佳答案

此建议的解决方案会删除所有空格,然后将字符串与可选的以 + 开头的字符串进行匹配,然后严格匹配 11 位数字。

document.querySelector('#phoneNumber1').addEventListener('input', function(e){
  if (/^\+?\d{11}$/.test(e.target.value.replace(/ /g, ''))) {
    console.log('valid');
  } else {
    console.log('invalid');
  }
});
<input type="text" id="phoneNumber1">

关于javascript - 允许用户在文本框中仅添加空格且电话号码不超过 11 个,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50375062/

相关文章:

javascript - 如何拦截 bootstrap-hover-dropdown 选择?

javascript - Javascript 中仅针对 Safari

javascript - 风格不适用于 ul li 倒计时

javascript - jQuery .prev() 类型,无论其父级等

jquery - 将带有 onchange 的选择转换为 ul 和 jquery

html - 尝试在工作区中绑定(bind) "/%PUBLIC_URL%/manifest.json"失败,因为在 Netlify 上运行时此 URI 格式错误

javascript - 在 Cordova/Onsen 中引用模板化 HTML 元素

javascript - ajax调用后仅在正确的选项卡中显示信息

javascript - 我一直在尝试似乎没有让放大的弹出窗口正常工作

javascript - 通过滚动事件更改字体大小后文本闪烁