在 angular 7 表单控件中的单个输入字段中验证电子邮件、Phone 和 PAN 号码
Validate Email,Phone and PAN number in single Input field in angular 7 form control
所以我想创建一个输入字段,它将告诉它是哪种类型,例如手机或电子邮件或 PAN 号码,那么我们如何在 formcontrol 中做到这一点
我尝试使用正则表达式模式,但它不起作用
<form [formGroup]="validates_input">
<mat-form-field>
<input matInput placeholder="Enter Email/ PAN / PAN">
</mat-form-field>
</form>
<button>Submit</button>
您可以编写自己的验证器。使用两个不同正则表达式值的组合。
电子邮件的简单示例
([a-z0-9\-\_\.]+\@[\w\d\-\_]+\.[\w]+)
简单数字正则表达式
([\d]+)
在你的组件文件中添加这个验证函数
// the validator
export function checkFilterInputValidator(nameRe: RegExp): ValidatorFn {
return (control:AbstractControl): {[key:string]: any} | null => {
// if input field is empty return as valid else test
const ret = (control.value !== '') ? nameRe.test(control.value) : true;
return !ret ? {'invalidNumber': {value: control.value}} : null;
};
}
在你的组件中添加到你的控件中
inputControl = new FormControl("",
[Validators.required,
checkFilterInputValidator(/([a-z0-9\-\_\.]+\@[\w\d\-\_]+\.[\w]+)|([\d]+)/ig)]);
并且在您的模板中,您必须添加一个用于显示错误的字段或创建一个错误依赖项 css class,即输入框的红框显示有错误.
<form [formGroup]="validates_input">
<mat-form-field>
<div *ngIf="inputControl .errors && inputControl .errors.invalidNumber">Invalid input</div>
<input matInput placeholder="Enter Email/ PAN / PAN">
</mat-form-field>
</form>
<button>Submit</button
查看文档:Custom validators
所以我想创建一个输入字段,它将告诉它是哪种类型,例如手机或电子邮件或 PAN 号码,那么我们如何在 formcontrol 中做到这一点
我尝试使用正则表达式模式,但它不起作用
<form [formGroup]="validates_input">
<mat-form-field>
<input matInput placeholder="Enter Email/ PAN / PAN">
</mat-form-field>
</form>
<button>Submit</button>
您可以编写自己的验证器。使用两个不同正则表达式值的组合。
电子邮件的简单示例
([a-z0-9\-\_\.]+\@[\w\d\-\_]+\.[\w]+)
简单数字正则表达式
([\d]+)
在你的组件文件中添加这个验证函数
// the validator
export function checkFilterInputValidator(nameRe: RegExp): ValidatorFn {
return (control:AbstractControl): {[key:string]: any} | null => {
// if input field is empty return as valid else test
const ret = (control.value !== '') ? nameRe.test(control.value) : true;
return !ret ? {'invalidNumber': {value: control.value}} : null;
};
}
在你的组件中添加到你的控件中
inputControl = new FormControl("",
[Validators.required,
checkFilterInputValidator(/([a-z0-9\-\_\.]+\@[\w\d\-\_]+\.[\w]+)|([\d]+)/ig)]);
并且在您的模板中,您必须添加一个用于显示错误的字段或创建一个错误依赖项 css class,即输入框的红框显示有错误.
<form [formGroup]="validates_input">
<mat-form-field>
<div *ngIf="inputControl .errors && inputControl .errors.invalidNumber">Invalid input</div>
<input matInput placeholder="Enter Email/ PAN / PAN">
</mat-form-field>
</form>
<button>Submit</button
查看文档:Custom validators