【问题标题】:Regex for email validation not working in Spring DOJO用于电子邮件验证的正则表达式在 Spring DOJO 中不起作用
【发布时间】:2015-08-06 16:44:51
【问题描述】:

我想使用 DOJO 框架的 Spring 装饰来验证电子邮件地址。但是用于正常验证的正则表达式不起作用。

<script type="text/javascript">
Spring.addDecoration(new Spring.ElementDecoration({
                        elementId: "emailAddress",
                        widgetType: "dijit.form.ValidationTextBox",
widgetAttrs: 
    {                             
    regExp : "/^[\w\.=-]+@[\w\.-]+\.[\w]{2,4}$/",
    required:"true",                         
    invalidMessage:"<span class='graytext'>Invalid format for email Address.<br> </span>",
    trim:"true"
                        }
                        }));

为什么我的正则表达式在 DOJO 的 Spring 装饰中不起作用?

【问题讨论】:

  • 您使用哪些电子邮件地址进行测试?该正则表达式将在某些有效的表达式上失败。
  • 查看 stackoverflow.com/a/8829363/1587329 以获取 stackoverflow 批准的电子邮件正则表达式 ;-): 剧透:^[a-zA-Z0-9.!#$%&amp;'*+/=?^ _`{|}~-]+@[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?(? :\.[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?)*$ (有一个反引号,因此无法通过反引号进行格式化)
  • 我正在尝试测试一个简单的邮件 ID:amit.kamath@gmail.com
  • 正则表达式:"^[\\w\\-]([\\.\\w\\-\\'])*[\\w]*[@]([A -Za-z0-9]{1}[\\.\\w_-]*)[.][A-Za-z]{2,10}",效果很好。但我不想保持高度限制性的验证。我想使用其他正则表达式。
  • 该正则表达式无法匹配 .travel 等新顶级域 - 考虑完全废弃它

标签: javascript regex spring dojo


【解决方案1】:

您只需删除正则表达式分隔符(前导和尾随/),因为DOJO regexp 已经转义了特殊的正则表达式字符:

regExp : "^[\w.=-]+@[\w.-]+\.\w{2,4}$"

此外,在字符类中,您不必转义 .,也不必将单个 \w 包含在字符类中。

【讨论】:

  • 谢谢。现在解决这个问题。
  • 很高兴为您提供帮助,如果对您有用,请考虑接受答案。
  • 请记住,这不适用于新 TLD。如果您有一个带有.travel.ninja、...的网站,那么此正则表达式将无法按预期工作。
【解决方案2】:

尝试添加双反斜杠:"/^[\\w\\.=-]+@[\\w\\.-]+\.[\\w]{2,4}$/"

【讨论】:

    猜你喜欢
    • 2013-01-16
    • 2013-08-11
    • 2022-01-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多