为了账号安全,请及时绑定邮箱和手机立即绑定

正则表达式,详细解析一下

正则表达式,详细解析一下

正则表达式 /^(?=.*[a-zA-Z])(?=.*\d)(?=.*[#%*]).{4,16}$/我知道这是一个4到16密码,请帮我详细解析一下,详细详细。谢谢
查看完整描述

3 回答

?
慕粉3233872

TA贡献70条经验 获得超29个赞

“^”匹配字符串的开始,“$”匹配字符串的结束。

小括号“()”用来指定子表达式(也叫做分组),{n,m}表示重复n到m次。

(?=exp)正向肯定预查,在任何匹配exp的字符串开始处匹配查找字符串。这是一个非获取匹配,也就是说,该匹配不需要获取供以后使用。例如,“Windows(?=95|98|NT|2000)”能匹配“Windows2000”中的“Windows”,但不能匹配“Windows3.1”中的“Windows”。预查不消耗字符,也就是说,在一个匹配发生后,在最后一次匹配之后立即开始下一次匹配的搜索,而不是从包含预查的字符之后开始。

“.”是元字符匹配换行符以外的任意字符,“*”是限定符表示重复零次或更多次,“.*”表示可以匹配任意文本(换行符除外)。

“[]”匹配没有预定义元字符的字符集合,[a-zA-Z]表示可以匹配所有大小写字母,[#%*]表示匹配“#”、“%”、“*”。

\d匹配一位数字,相当于[0-9]。

(?=.*[a-zA-Z])匹配后缀必须是大小写字母;(?=.*\d)匹配后缀必须是数字;(?=.*[#%*])匹配“#”、“%”、“*”。

这个表达式的意思是匹配4-16位字符,必须含有以字母、数字、“#”或“%”或“*”结尾的部分。

如aBc123%,%2a*

查看完整回答
反对 回复 2017-03-17
  • 3 回答
  • 1 关注
  • 1343 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信