需求:由数字下划线(_)减号(-)和字母组成,并且要同时含有数字和字母,且长度要在8-16位之间。

/^(?=.*[a-zA-Z])(?=.*[0-9])[A-Za-z0-9-_]{8,16}$/g

注释一下:
^ 匹配一行的开头位置
(?=.*[a-zA-Z]) 预测该位置后面是其他字符和字母
(?=.*[0-9]) 预测该位置后面是其他字符和数字
(?=.*[a-zA-Z])(?=.*[0-9]) 前两组加起来就是该位置后面是(字母 && 数字) 和其它字符
[A-Za-z0-9-_] {8,16} 由8-16位数字或字母或-_组成
$ 匹配行结尾位置

注:(?=xxxx) 是正则表达式的正向零宽断言一种形式,标识预该位置后是xxxx字符。


zpfei
186 声望7 粉丝

往事如风~