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

How to write custom validation pattern for Phone number

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

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>

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

我会这样做:

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

这是 phone 对 angular 应用的验证

如果您想要使用国家代码进行验证

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

}

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

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