Angular 带空格的电子邮件验证器
Angular email validator with whitespaces
我正在开发一个新的基于 Angular 的应用程序,其登录表单基于电子邮件和密码。
它有一个用于这些字段的表单,由以下行定义:
let formConfig = {
email: ['', [Validators.required, Validators.email]],
password: ['', [Validators.required]],
};
this.form = this.formBuilder.group(formConfig)
除一种情况外,一切正常:
当用户使用三星(和其他公司)的自动完成功能填写电子邮件字段时,它会在电子邮件后插入一个空的 space,并且 Validators.email
假定它是无效的电子邮件。
我的问题是如何解决这种特殊情况?
我很确定我可以只放置一些 现有的电子邮件验证正则表达式 ,但我不想重新发明轮子,如果验证器存在,创建另一个看起来很疯狂。
是否可以实施某种验证器来修改我的表单控件值,去除白色spaces?
我不明白你为什么不在用它做其他事情之前用正则表达式 javascript 来表达它。
您可以使用正则表达式 /$/ 匹配字符串的末尾,我会使用 /\s{1,}$/ 这样您就可以捕获一个或更大的 "whitespace" 个字符。那里有电子邮件验证器,但当然你需要在最后首先去掉白色的 space 。
我认为教授正则表达式超出了范围,但这就是我处理自动完成的杂散输入的方式。
另一个建议是关闭自动完成,这样你就不会得到杂散的东西,但这只会惹恼用户(这让我很恼火)。
我也有过同样的经历。
对于仍然遇到这个问题的每个人;
将 type="email"
添加到您的 <input>
并结合 Validators.email
应该可以解决问题。
我正在开发一个新的基于 Angular 的应用程序,其登录表单基于电子邮件和密码。
它有一个用于这些字段的表单,由以下行定义:
let formConfig = {
email: ['', [Validators.required, Validators.email]],
password: ['', [Validators.required]],
};
this.form = this.formBuilder.group(formConfig)
除一种情况外,一切正常:
当用户使用三星(和其他公司)的自动完成功能填写电子邮件字段时,它会在电子邮件后插入一个空的 space,并且 Validators.email
假定它是无效的电子邮件。
我的问题是如何解决这种特殊情况?
我很确定我可以只放置一些 现有的电子邮件验证正则表达式 ,但我不想重新发明轮子,如果验证器存在,创建另一个看起来很疯狂。
是否可以实施某种验证器来修改我的表单控件值,去除白色spaces?
我不明白你为什么不在用它做其他事情之前用正则表达式 javascript 来表达它。
您可以使用正则表达式 /$/ 匹配字符串的末尾,我会使用 /\s{1,}$/ 这样您就可以捕获一个或更大的 "whitespace" 个字符。那里有电子邮件验证器,但当然你需要在最后首先去掉白色的 space 。
我认为教授正则表达式超出了范围,但这就是我处理自动完成的杂散输入的方式。
另一个建议是关闭自动完成,这样你就不会得到杂散的东西,但这只会惹恼用户(这让我很恼火)。
我也有过同样的经历。
对于仍然遇到这个问题的每个人;
将 type="email"
添加到您的 <input>
并结合 Validators.email
应该可以解决问题。