我已经在.ts文件中使用以下代码实现了角度为5的模式,以进行密码验证。这样做 - 支持最少八个字符,至少一个大写字母,一个小写字母,一个数字和一个特殊字符。见:Regex for password must contain at least eight characters, at least one number and both lower and uppercase letters and special characters
wcodePattern = "^(?=.*[a-z])(?=.*[A-Z])(?=.*\d)(?=.*[$@$!%*?&])[A-Za-z0-9\d$@$-_!%*?&]{8,20}";
我看到,当我在密码文本框中输入一个字符串时,例如Niladri1!
它的工作然而,当我输入像Nopasss123!!
这样的字符串时,它显示了User name not valid.
。
下面是angular 5 html的代码:
<div *ngIf="wcode.errors?.pattern">User name not valid.</div>
我还测试了以下内容,它将字符串作为Noladris
,假设无效。
^(?=.*[a-z])(?=.*[A-Z])(?=.*\d)(?=.*[@-_!])[A-Za-z0-9\d@-_!]{8,20}$
我错过了什么?
你需要使用
wcodePattern = '^(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[@$!%*?&])[A-Za-z0-9@$_!%*?&-]{8,20}$'
或者,因为您在RegExp
构造函数中使用它,所以这里有一个版本:
wcodePattern = '^(?=.*[a-z])(?=.*[A-Z])(?=.*\\d)(?=.*[@$!%*?&])[A-Za-z\\d@$_!%*?&-]{8,20}$'
注意:
-
放在字符类的开头/结尾以匹配文字连字符,或者将其转义为\n
,\t
等。$
以“锚定”匹配(即匹配字符串的结尾以确保最大字符串限制)。[$@$]
= [$@]
- 不需要在字符类中重复字符。