使用javascript满足条件的电话号码验证

时间:2018-03-14 04:48:34

标签: javascript html css regex

我需要满足以下条件的电话号码验证。我有单独的代码。但我发现很难 结合正则表达式。

1.整个电话号码可以是64个字符。

电话号码的第2.1个字符可以是+或0。

电话号码的第3个,第3个,第4个字符可以是(或)或 - 或空格或0到9的数字。

  1. 电话号码的第5到第64个字符可以是(或)或 - 或空格或*或#或数字0到9或小字母和大写字母
  2. 请指导。谢谢。

    var num1 = /^[\+0]$/; // first character 0 or +
    
    var num2 = /^\d(?: ?\d+)*$/; // space 
    
    var num3 = /^\d{0,64}$/; // 64 character long

1 个答案:

答案 0 :(得分:1)

你真的可以解决一下这个问题。

  1. 确保输入小于或等于64个字符
  2. 只需检查第一个正则表达式部分和第二个正则表达式部分
  3. 检查字符串的其余部分
  4. <form action="/login" method="post">
        <div>
            <label>Username:</label>
            <input type="text" name="username"/><br/>
        </div>
        <div>
            <label>Password:</label>
            <input type="password" name="password"/>
        </div>
        <div>
            <input type="submit" value="Submit"/>
        </div>
    </form>
    
    function test_example () {
      let input = document.getElementById("example").value
      if (input.length <= 64)
      {
        if (input[0] !== "+" && input[0] !== "0")
        {
          console.log("first false")    
          return false
        }
        
        let second = input.substring(1, 5)
        if (!second.match(/^[0-9() ]+$/))
        {
          console.log("second false")
          return false
        }
        
        let third = input.substring(5)
        console.log(third)
        if (!third.match(/^[A-z0-9()*# -]+$/))
        {
          console.log("third false")
          return false
        }
        
        console.log("okay")
        return true
      }
    }