如何为电话号码编写自定义验证模式

时间:2019-01-20 05:17:00

标签: angularjs validation angular-reactive-forms

我正在尝试为电话号码(印度)编写自定义验证,我的问题是它应该同时验证手机号码和座机号码。如果有人给我解决方案,我将非常感激 我的验证码

contact:['', [Validators.required,Validators.pattern("/^[0-9]{10,10}$/")]],

HTML代码:

<div *ngIf="(submitted||f.contact.touched) && f.contact.invalid" class="error-msg">
    <div *ngIf="f.contact.errors.required">contact  is required</div>
    <div *ngIf="f.contact.errors.pattern">Please enter 10 digit Number</div>
</div>

3 个答案:

答案 0 :(得分:1)

我会这样:

contact = new FormControl('', [Validators.required, Validators.pattern("^[0-9]{10,12}$")]);

正则表达式:^[0-9]{10,12}$

在哪里

[0,9]   - Accept 0 to 9 numbers
{10,12} - Range

StackBlitz

答案 1 :(得分:0)

这是针对角度应用的电话验证

如果您想使用国家/地区代码进行验证

export class CustomValidators {
  static phoneNumber(countryPhoneCode = '*'): ValidatorFn {
    return Validators.pattern('([+]'+ countryPhoneCode + ')?([0-9]{9,12})$');
  }

}

现在在您的表单组中使用它

this.formbuilder.group({
      phone: ['', [CustomValidators.phoneNumber('237')]]
    });

答案 2 :(得分:-1)

如果您指的是验证用户是否输入了有效的验证码(区号,手机号码前缀),我认为您应该编写一个自定义验证器。也许最好的方法是执行服务器端验证,因此,您可以添加或更改验证逻辑,而无需重新部署前端。