Angular2表单验证检查号码

时间:2016-10-17 20:43:21

标签: regex validation angular2-forms

我遇到问题,验证在我的角度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永远不会消失,不确定我做错了什么。我的其他领域的其他模式验证器工作。

2 个答案:

答案 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+

这将匹配一个或多个数字,但不是空白值。