首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >cfinput不接受.education域名

cfinput不接受.education域名
EN

Stack Overflow用户
提问于 2020-12-01 12:36:58
回答 2查看 72关注 0票数 1

有史以来第一次有两个用户使用.education顶级域名进入我的应用程序。他们的电子邮件地址是这样的: user@domain.education。我在他们填写的表单上使用cfinput validate属性,如下所示:

代码语言:javascript
复制
<cfinput type="text" name="email" required="yes" message="Please enter a valid email address." validate="email">

当用户提交表单时,他们会收到我的错误消息。多年来,该表单已在输入的所有其他电子邮件地址上成功工作。有什么窍门可以让它获得这个顶级域名吗?提亚

EN

回答 2

Stack Overflow用户

发布于 2020-12-01 13:24:11

避免所有的ColdFusion UI标记。它们只会带来痛苦。

每个版本的ColdFusion都会更新内置的电子邮件验证,以处理当前新的顶级域(TLD)。目前有近1600个活跃的TLD。

  • Javascript验证无法解决此问题。
  • 正则表达式也无法解决此问题。
  • 如果您尚未在服务器上进行验证,则需要进行验证。

最好是删除启动的验证规则,并在激活应用程序上的用户之前发送一封电子邮件来验证电子邮件帐户是否存在。

票数 5
EN

Stack Overflow用户

发布于 2020-12-02 08:03:36

我同意其他关于限制使用cfinput的答案,但作为一个快速解决方案,您应该能够使用cfinput模式属性(https://helpx.adobe.com/coldfusion/cfml-reference/coldfusion-tags/tags-i/cfinput.html):

<cfinput type="text" name="email" required="yes" message="Please enter a valid email address." validate="regex" pattern="(?:[a-z0-9!##$%&'`+/=?^{|}~-]+(?:.a-z0-9!##$%&'*+/=?^_{|}~-+)_|"(?:\x01-\x08\x0b\x0c\x0e-\x1f\x21\x23-\x5b\x5d-\x7f|[\x01-\x09\x0b\x0c\x0e-\x7f])_")@(?:(?:a-z0-9?.)+a-z0-9?|[(?:(?:250-5|20-4|010-9?).){3}(?:250-5|20-4|010-9?|a-z0-9-_a-z0-9:(?:\x01-\x08\x0b\x0c\x0e-\x1f\x21-\x5a\x53-\x7f|[\x01-\x09\x0b\x0c\x0e-\x7f])+)])">`

模式属性可以更改为任何正则表达式。所提供的是符合RFC 5322的。

编辑:将模式更改为基于Java的RegEx和转义#

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/65084808

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档