【发布时间】:2016-07-08 05:23:27
【问题描述】:
似乎 Grails 中的电子邮件验证只是应用了simple regex。虽然它会验证大多数电子邮件,但某些特殊但经过授权的字符会使验证失败。
例如使用了德语 ß 字符 in some email addresses,但不会通过 grail 验证:
package com.stuff.user.AppUser
import grails.test.mixin.Mock
import spock.lang.Specification
/**
* Created by hschoonjans on 21/03/2016.
*/
@Mock(AppUser)
class AppUserSpec extends Specification {
def "It doesn't validate an email with an eszett"() {
given:
AppUser user = new AppUser(email: "helainß@hotmail.com")
expect:
!user.validate(["email"])
}
}
使用自定义正则表达式进行验证,授权 ß 将是微不足道的,但如果用户尝试在其邮件地址中使用另一个奇异但有效的字符怎么办?
为了避免这个问题,我想知道有哪些 Java/Groovy/Grails 通用电子邮件地址验证器。一个类/正则表达式,可以验证任何有效的电子邮件地址,比当前的 Grails 电子邮件验证更智能。
【问题讨论】:
标签: validation email grails grails-validation