展开正则表达式摘要以允许更长的TLD

时间:2015-02-16 11:55:08

标签: ruby-on-rails ruby regex

我正在使用来自Foradian的开源应用程序,在尝试添加管理用户时,我收到一条错误消息,指出该电子邮件地址无效。我已经浏览了源代码并找到了执行此检查的正则表达式代码段,或者我认为。

/^[A-Z0-9._%-]+@([A-Z0-9-]+\.)+[A-Z]{2,4}$/i

如何通过更改上面的代码段使应用程序接受更新,更长的TLD,如.university,.museum和其他?

2 个答案:

答案 0 :(得分:2)

您可以从上次检查中删除4,它只会检查结束域是否至少包含2个字符。

 /^[A-Z0-9._%-]+@([A-Z0-9-]+\.)+[A-Z]{2,}$/i

Here is working example.

答案 1 :(得分:0)

我在发布问题后不久就找到了这个解决方案:

^[A-Z0-9._%+-]+@[A-Z0-9.-]+\.(?:[A-Z]{2}|com|org|net|edu|gov|mil|biz|info|mobi|name|aero|asia|jobs|museum|university)$

以上允许我指定接受哪些TLD。

目前,我已选择上面标记的已接受解决方案,因为在添加新TLD时可以省去编辑源代码的麻烦。