【问题标题】:my phone number validation is not working properly我的电话号码验证无法正常工作
【发布时间】:2021-07-26 09:35:42
【问题描述】:

我的电话号码验证工作不正常。它总是显示错误。我不明白有什么问题。控制台中没有错误显示。我使用正则表达式 = / ^(?:+?88)?01[13-9]\d{8}$ / ;。孟加拉国。

const number = document.getElementById('number');
    form.addEventListener('submit', (event) => {
         event.preventDefault();
         validate()
    })
    const sedData = (sRate, count) => {
         if (sRate === count) {
          alert("Registration successful");
          swal(`Welcome! ${username} registration successful`);
       }
     }
    const SuccessMsg = (usernameVal) => {
        let formCon = document.getElementsByClassName('form-control');
        var count = formCon.length - 1;
        for (var i = 0; i < formCon.length; i++) {
          if (formCon[i].className === "form-control success") {
          var sRate = 0 + I;
         sedData(usernameVal, sRate, count);
         } else {
           return false;
        }
     }
  }

   const validate = () => {
     const numberVal = number.value.trim();
            if (numberVal === "") {
              setErrorMsg(number, "number can not be blank");
            } else if (numberVal.match(regex)) {
               setSuccessMsg();
            } else {
               setErrorMsg(number, "Oops! your phone number is invalid");
         }
       }
    function setErrorMsg(input, errorMsgs) {
      const formControl = input.parentElement;
      const small = formControl.querySelector('small');
      formControl.className = "form-control error";
      small.innerText = errorMsgs;
  }
 function setSuccessMsg(input) {
   const formControl = input.parentElement;
   formControl.className = "form-control success";
 }

【问题讨论】:

  • / ^(?:+?88)?01[13-9]\d{8}$ / 表示它需要一个空格,then 行首,then 模式,then行尾,然后又是一个空格。

标签: javascript forms validation


【解决方案1】:

我猜这是你想要的正则表达式/^(?:\+?88)?01[13-9]\d{8}$/

如果有不对的地方,请举一些对与错的例子

另外,您可以在var sRate = 0 + I; 的 SuccessMsg 中使用大写 I 吗?

【讨论】:

  • 如果我在第一次尝试时给出正确的数字,什么都没有发生。然后我给出了错误的数字,它给出了错误、错误的 CSS 并正常工作。然后我给出正确的数字,它给出错误和错误 CSS
  • 我没有在 SuccessMsg 中的 var sRate = 0 + I 中使用大写字母 I;我尝试资本但不工作
  • 样式未设置为成功,因为您没有传递input 参数。在} else if ... 子句中应该是setSuccessMsg(number);
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多