Javascript中的正则表达式不起作用
我需要一个具有以下要求的正则表达式 1.最少8个字符。 至少是一封信。 3.至少有一个数字。 4.至少有特殊性格 我试过这个,但不适合我Javascript中的正则表达式不起作用,javascript,regex,validation,Javascript,Regex,Validation,我需要一个具有以下要求的正则表达式 1.最少8个字符。 至少是一封信。 3.至少有一个数字。 4.至少有特殊性格 我试过这个,但不适合我 (?=^.{8,}$)(?=.*\d)(?=.*[!@#$%^&*]+)(?![.\n])(?=.*[A-Z])(?=.*[a-z]).*$ 您可以使用以下正则表达式: ^(?=.{8})(?=.*\d)(?=.*[!@#$%^&*])(?=.*[a-zA-Z]).*$ 请注意: 要检查至少8个字符,您可以省去逗号和$(两者),因为找到8
(?=^.{8,}$)(?=.*\d)(?=.*[!@#$%^&*]+)(?![.\n])(?=.*[A-Z])(?=.*[a-z]).*$
您可以使用以下正则表达式:
^(?=.{8})(?=.*\d)(?=.*[!@#$%^&*])(?=.*[a-zA-Z]).*$
请注意:
- 要检查至少8个字符,您可以省去逗号和$(两者),因为找到8个字符后无需进一步查找
- 对于检查特殊字符(与任何其他字符类一样),您不需要添加
:当找到一个字符时,条件已经满足+
- (在您的案例中)不应该区分小写和大写,所以这些测试应该合并
- 因为您没有关于点或换行符的条件,所以应该删除该测试(
)(?![。\n])
- 您可能希望插入符号出现在最开始的位置,而不是出现在第一组中:您希望输入中的所有字符都匹配或不匹配
(?=.*[A-Z])(?=.*[A-Z])
表示您至少需要一个大写字母和一个小写字母。将两个字符类合并为仅(?=.[a-zA-Z])
或使用不区分大小写的标志i
。