正则表达式 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,后面的主体部分在匹配的时候,还是会从第一个字符来判断。
1 回答858 阅读✓ 已解决
1 回答1.1k 阅读
2 回答774 阅读
2 回答622 阅读
1 回答828 阅读
2 回答609 阅读
1 回答682 阅读
看图
