正则表达式 6~22位,必须由字母和数字组成。
表示式如下:/^(?![a-zA-Z]+$)(?!\d+$)[a-zA-Z0-9]{6,22}$/
自己理解的思路:预先去除全是字母组成的字符串,再去去除全是数字的字符串,再去判断最后的6~22位的字母或数字组成,不知道是不是这样理解。
请大神解惑,小弟感激不尽!
正则表达式 6~22位,必须由字母和数字组成。
表示式如下:/^(?![a-zA-Z]+$)(?!\d+$)[a-zA-Z0-9]{6,22}$/
自己理解的思路:预先去除全是字母组成的字符串,再去去除全是数字的字符串,再去判断最后的6~22位的字母或数字组成,不知道是不是这样理解。
请大神解惑,小弟感激不尽!
可以这样子来理解
这个正则表达式分成三部分,
/^[a-zA-Z0-9]{6,22}$/ 字母和数字,且 6-22 位
/^(?![a-zA-Z]+$)/ 排除纯字母
/^(?!\d+$)/ 排除纯数字
具体执行的先后顺序我也不是很清楚。其实这个正则表达式的疑惑,主要来源于 (?!)
,这个并不会改变正则表达式的索引 lastIndex
,后面的主体部分在匹配的时候,还是会从第一个字符来判断。
10 回答11.2k 阅读
5 回答4.8k 阅读✓ 已解决
4 回答3.1k 阅读✓ 已解决
2 回答2.7k 阅读✓ 已解决
3 回答2.3k 阅读✓ 已解决
3 回答2.1k 阅读✓ 已解决
2 回答2.6k 阅读✓ 已解决
看图
