我遇到问题,验证在我的角度2表格中输入的密码中至少包含一个数字。其他验证器只使用这种模式。我使用的正则表达式来自我 Regex: Check if string contains at least one digit
密码:
<div *ngIf="signUpForm.controls['password'].invalid && signUpForm.controls['password'].dirty">
<small *ngIf="signUpForm.controls['password'].errors.minlength">
Please enter a minimum of 6 characters
</small>
<small *ngIf="signUpForm.controls['password'].errors.maxlength">
Password cannot exceed 15 characters
</small>
<small *ngIf="signUpForm.controls['password'].errors.pattern">
Must contain digits
</small>
</div>
在我的表单中我有以下验证器,具体我想要的模式是检查输入的字符串是否包含数字
"password":["", [
Validators.required,
Validators.minLength(6),
Validators.maxLength(15),
Validators.pattern('/\d')
]
]
如果字段中有数字,则错误.patters ngIf永远不会消失,不确定我做错了什么。我的其他领域的其他模式验证器工作。
答案 0 :(得分:1)
Validators.pattern('\\d+')
怎么样?
如果我理解正确,你需要提供一个反斜杠(不是正斜杠)来逃避反斜杠。
写成正则表达式文字,看起来像/\d+/
,但我不认为Angular 2支持那些。
UPDATE 如果那不起作用那么它必须是您的设置或Angular 2中的错误。我不会单独使用Angular 2这么难说但你可以看到正则表达式本身很好:
const regex = new RegExp('\\d+', 'g')
console.info('hiwefwe883290awefoijwfe8382jfwef'.match(regex))
答案 1 :(得分:0)
您的模式\d
仅适用于单个数字。您需要添加量词。
\d+
这将匹配一个或多个数字,但不是空白值。