angular - 如果电子邮件模式不匹配,如何使用 ngif 检查
问题描述
如何检查模式是否与输入字段中输入的电子邮件匹配。
<input type="email" name="email" #email ngModel required [pattern]="emailPattern" placeholder="Email *"/>
<div *ngIf="validateEmail(email)">Email not valid</div>
.ts 文件
pattern = /^[a-z0-9._%+-]+@[a-z0-9.-]+\.[a-z]{2,4}$/;
validateEmail(email) {
if (email == pattern) {
return true;
解决方案
最好的方法是使用响应式表单和内置验证器。基本/裸最小结构如下:
import { FormBuilder, FormGroup, Validators, AbstractControl } from '@angular/forms';
@Component({
selector: 'user',
styleUrls: ['user.component.scss'],
template: `
<form novalidate [formGroup]="form">
<label for="Email">Email: </label>
<input type="text" formControlName="Email">
</form>
`
})
export class User {
form = this.fb.group({
Email: ['', [Validators.required, Validators.email]]
})
constructor(
private fb: FormBuilder
) {}
}
这要求用户输入电子邮件,并使用内置验证器确保它与标准电子邮件模式匹配。
推荐阅读
- php - 尝试使用存储在单元格数据中的变量
- php - Laravel 5.7 使用 Laratrust 登录,路由失败,路由错误到“/home”
- objective-c - 在混合之前验证方法签名
- ldap - Gerrit LDAP 强制组
- dart - 无法使用简单的 Dart Web 服务器提供 Angular 组件
- wso2 - 具有默认范围的 WSO2 APIM access_token 生成
- reactjs - react-select 不显示列数
- python - 按内部列表中元素的总和对元组列表进行排序
- javascript - Javascript中的乒乓游戏
- json - 仅从带有 jq 的流中获取第一个 json 对象,不要触摸休息