求大家帮忙写出两个正则,谢谢,最好带出注释说明,因为新手。再次感谢。要求如下:
1:用户名必须有字母和数字和连字符(-)组合,位数8-16位,连字符位置不限。比如:abc324-sdf
2:用户名必须有字母和数字和两个连字符(-)组合,位数8-16位,连字符必须在中间。比如:abc55-sdfsf-dfg

解决方案 »

  1.   

    1  /^[A-Za-z0-9\-]{8,16}$/2  /^(?=([^\-]*-){2}[^\-]*$)[A-Za-z0-9][A-Za-z0-9\-]{6,14}[A-Za-z0-9]$/
      

  2.   

    /^(?=.*[a-z])(?=.*-)(?=.*\d)[a-z\d-]{8,16}$/i
    /^(?=.*[a-z])(?=^[^-].*-[^-]+$)(?=.*\d)[a-z\d-]{8,16}$/i
      

  3.   

    首先谢谢,可能我表达不清楚,每条规则都是必须组合“-”才可以。

    /^(?=.*-)[A-Za-z0-9\-]{8,16}$/
      

  4.   

    /^(?=.*[a-z])(?=^[^-].*-[^-]+$)(?=.*\d)[a-z\d-]{8,16}$/i
    [a-z\d-]{8,16} : 必须由8-16个字母和数字和-组成
    (?=.*[a-z]) 条件1是必须含有字母
    (?=.*\d) 条件2是必须含有数字
    (?=^[^-].*-[^-]+$)条件2是开头和结尾不能是-,但必须含有-
      

  5.   

    https://github.com/scscms/RegExp 学下正则吧