一.写一个正则满足以下要求
1.字符串由字母、数字和特殊字符组成,其中特殊字符可以是 !、@、#、$、%、^、&、*、_、+、
2.字母开头,数字结尾
3.必须包含一个特殊字符
4.整个字符的长度为8到20位
答. a. 我的答案: let reg=/^[a-zA-Z][ !@#$%^&*_+]{1,}[a-zA-Z0-9!@#$%^&*_+]{5,17}\d$/
AI 的答案: /^(?=.*[!@#$%^&*_+])(?=.*[a-zA-Z])(?=.*\d)[a-zA-Z][a-zA-Z0-9!@#$%^&*_+]{6,18}\d$/
正则中的含义是:
^
:匹配字符串的开头。[a-zA-Z]
:匹配一个字母作为开头。[
!@#$%^&*_+]{1,}
:匹配至少一个特殊字符。[a-zA-Z0-9
!@#$%^&*_+]{5,17}
:匹配 长度为5 到 17 位 字母、数字和特殊字符的组合。\d
:匹配一个数字。$
:匹配字符串的结尾。-
(?=...):正向前行断言的开始标记。
-
.*:表示任意数量的字符(除了换行符)。这里的 .* 用于匹配零个或多个字符
-
所以 (?=.*[!@#$%^&*()-=_+~])