【发布时间】:2019-06-09 12:38:43
【问题描述】:
我有一个表单,我想以这样的方式进行角度验证,如果用户输入任何特殊字符,那么它应该显示错误。 该表单有两个字段名称和说明。在名称字段中,我想使用正则表达式验证用户不能输入除字母数字字符以外的任何内容。
HTML 代码:
<form (ngSubmit)="(submit)" #formControl="ngForm">
<div class="form">
<mat-form-field color="accent">
<input
matInput
#input
class="form-control"
placeholder="name"
[(ngModel)]="data.projectName"
name="name"
(ngModelChange)="noWhiteSpaceOnChange()"
required
minlength="4"
/>
<mat-error *ngIf="formControl.invalid">{{
getErrorMessage()
}}</mat-error>
</mat-form-field>
</div>
</form>
TypeScript 代码:-
noWhiteSpaceOnChange() {
const validationRegex = /^((?!\s{1,}).)*$/
if (!validationRegex.test(this.data.projectName)) {
// this.data.projectName= '';
let str = this.data.projectName;
str = str.replace(/[^A-Z0-9]+/ig, "_");
this.data.projectName=str;
}
}
【问题讨论】:
-
尝试将两个正则表达式合二为一!
-
您的正则表达式不包括小写字符仅供参考
-
我对正则表达式的了解为零。我只需要进行某种验证,允许用户仅输入字母数字字符
标签: regex angular typescript angular-material