search

Home  >  Q&A  >  body text

js 正则验证手机号,有点疑问?

  // 验证手机号
    var verifyTel = function(tel) {
        if(tel.match(/^((13[0-9])|(14[4,7])|(15[^4,\D])|(17[6-8])|(18[0-9]))(\d{8})$/)) {
            return true;
        } else
            return false;
    }

这部分不太懂什么意思:
**

bVFkzX.png

高洛峰高洛峰2943 days ago624

reply all(2)I'll reply

  • 欧阳克

    欧阳克2016-11-10 14:15:29

    14[4,7] 表示匹配 144 或者 147

    15[^4,D] 表示匹配 除了 154 外的所有 15 开头的三位数


    reply
    0
  • 三叔

    三叔2016-11-10 14:14:42

    我觉得上面的两个答案有点不严谨呢?

    /14[4,7]/.test("144") //true/14[4,7]/.test("147") //true/14[4,7]/.test("14,") //true

    不懂在[]可选字符组(集)里用了逗号,总觉得这里应该是[4-7]的意图(我猜的

    第二个是15[^4,D]在[]取的反义,即不能是4, ,和\D(不是数字的情况),
    概况起来就是说在15后要匹配到的为  不能 不是数字,不能是逗号,不是4,
    就是从0-9中排除4,我觉得
    15[^4,\D]和15[^4\D]效果是一样的。


    reply
    0
  • Cancelreply