Regex Angular 5表单自定义验证工作不正常
我正在处理Angular 5,我有一个带有字段用户名的表单。我想为最小字符长度集成一个自定义验证,并避免空白Regex Angular 5表单自定义验证工作不正常,regex,typescript,angular5,Regex,Typescript,Angular5,我正在处理Angular 5,我有一个带有字段用户名的表单。我想为最小字符长度集成一个自定义验证,并避免空白 <input type="text" class="form-control " id="account-details-username" placeholder="" formControlName="username" > <div *ngIf="form.get('accountDetails.username').touched &&a
<input type="text" class="form-control " id="account-details-username" placeholder="" formControlName="username" >
<div *ngIf="form.get('accountDetails.username').touched && form.get('accountDetails.username').invalid" class="alert alert-danger">
<div *ngIf="form.get('accountDetails.username').errors.required">Username is required.</div>
<div *ngIf="form.get('accountDetails.username').errors.minimumSix">Username must contain at least 6 characters</div>
<div *ngIf="form.get('accountDetails.username').errors.blankSpace">Username does not contain blank space.</div>
</div>
不检查空白验证。对于空白,我建议以下解决方案
const blankSpace = /^\S*$/;
if (!blankSpace.test(control.value)) {
console.log("blank");
return { 'blankSpace': true };
}
因此,您的完整方法应如下所示:
test(control: any) {
const minimumSix = new RegExp("^[a-zA-Z0-9!@#$%^&*]{6,}");
const blankSpace = /^\S*$/;
if (!minimumSix.test(control.value)) {
return { 'minimumSix': true };
}
if (!blankSpace.test(control.value)) {
console.log("blank");
return { 'blankSpace': true };
}
return null;
}
也许可以通过将
ng trim=“false”
添加到input
中来解决这个问题?我理解对了吗?你的问题是,“空白验证”根本不起作用?是的@DiabolicWords
test(control: any) {
const minimumSix = new RegExp("^[a-zA-Z0-9!@#$%^&*]{6,}");
const blankSpace = /^\S*$/;
if (!minimumSix.test(control.value)) {
return { 'minimumSix': true };
}
if (!blankSpace.test(control.value)) {
console.log("blank");
return { 'blankSpace': true };
}
return null;
}