错在:
[0-9]{5,9}他只判断88888baaabbb的前5个是数字。所以
028-88888aaabbb(匹配,没错)028-8888aaabbb(不匹配,错)所以你必须先判断所有的字符是只能是数字和-或,

解决方案 »

  1.   

    var part =/^\d{3,9}(-|,|、)?\d{5,9}$/;
      

  2.   

    你的[0-9]{5,9}只判断最后的5个数字。比如028-12345aaaa就通过,028-1234a就同不过。所以你改成:var part =/^[0-9]{3,9}(-|,|、){0,1}([0-9]{5,9}$)/;
      

  3.   

    你的[0-9]{5,9}只判断最后的5个数字。比如028-12345aaaa就通过,028-1234a就同不过。所以你改成:var part =/^[0-9]{3,9}(-|,|、){0,1}([0-9]{5,9}$)/;
      

  4.   

    var part =/^\d{3,9}((-|,|、)?\d{5,9})+$/;
      

  5.   

    var part =/^[a-zA-Z][a-zA-Z]{4,10}$/;
    是否可以保证就是全部是字符呢?
      

  6.   

    试试,var part =/^\d{3,9}(-|,|、){0,1}[\d|,]*\d{5,9}$/;
    好一些,不过也不是万能的。另外。var part =/^[a-z]|[A-Z][a-z]|[A-Z]{4,10}$/;可以保证就是全部是字符