好的,有一百万个正则表达式用于验证电子邮件地址,但是一些可以集成到 Sql Server 2005 的 TSQL 查询中的基本电子邮件验证怎么样?
我不想使用 CLR 过程或函数。只是直接的 TSQL。
有人已经解决这个问题了吗?
Very基本是:
SELECT
EmailAddress,
CASE WHEN EmailAddress LIKE '%_@_%_.__%'
AND EmailAddress NOT LIKE '%[any obviously invalid characters]%'
THEN 'Could be'
ELSE 'Nope'
END Validates
FROM
Table
这会匹配中间带有 @ 的所有内容,前面至少有一个字符,后面至少有两个字符、一个点和至少两个 TLD。
你可以多写一点LIKE
模式可以执行更具体的操作,但是您永远无法匹配可能是电子邮件地址的所有内容,同时又不能漏掉不是电子邮件地址的内容。即使使用正则表达式,你也很难做到正确。此外,即使根据 RFC 的字母进行匹配,也会匹配大多数电子邮件系统不会接受/使用的地址结构。
无论如何,在数据库级别执行此操作可能是错误的方法,因此如上所述的基本健全性检查可能是性能方面最好的选择,并且在应用程序中执行此操作将为您提供更大的灵活性。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)