dmtnewtons
浮华out
采纳率100%
2015-06-19 09:13 阅读 2.9k
已采纳

js 正则同时验证 手机号和座机 用逗号间隔

5

比如:23955558888,13700596648,010-62607878

现正则:/^(1\d{10})|(0\d{2,3}-?\d{7,8}(-\d{3,4})?$)/

这样可以匹配出座机不正确的,但是手机号却被当做座机处理了。
求正解!

补充:
我用笨办法处理的:接收到子串后,用split分割开,再逐一验证的
手机号不会以 除 1 以外的数字开头;

  • 点赞
  • 写回答
  • 关注问题
  • 收藏
  • 复制链接分享

3条回答 默认 最新

  • 已采纳
    u011042188 SaneFuture 2015-06-21 13:33

    先split分割,然后调用这个函数:

     function checkMobile(str) {
       var rePhone =  /^((\+?86)|(\(\+86\)))?1\d{10}$/;
       var Tel = /^((\+?86)|(\(\+86\)))?\d{3,4}-\d{7,8}(-\d{3,4})?$/;
       if (rePhone.test(str)||Tel.test(str)) {
           //是手机或者座机
       } else {
           //匹配失败
       }
    }
    
    点赞 1 评论 复制链接分享
  • devmiao devmiao 2015-06-19 15:35

    还不如先split切割,然后分别匹配,这样写起来改起来以及维护都简单。

    点赞 4 评论 复制链接分享
  • syjgreen07 不服输的人 2015-06-19 09:26

    你的逗号呢?
    而且你保证第一个手机号,不是座机?

    点赞 评论 复制链接分享

相关推荐