SQL - 检查电子邮件中的特殊字符

时间:2017-04-05 15:02:02

标签: sql sql-server

我需要验证电子邮件是否有效。我尝试了以下查询,

--if the email is valid,
WHERE (CHARINDEX('',LTRIM(RTRIM(Email)))=0  
                    AND LEFT(LTRIM(Email),1)<> '@' 
                    AND RIGHT(RTRIM(Email),1)<> '.'
                    AND CHARINDEX('.',Email, CHARINDEX('@',Email))-CHARINDEX('@',Email)>1
                    AND LEN(LTRIM(RTRIM(Email)))-LEN(REPLACE(LTRIM(RTRIM(Email)),'@',''))=1
                    AND CHARINDEX('.',REVERSE(LTRIM(RTRIM(Email))))>=3
                    AND(CHARINDEX('.@',Email)=0 AND CHARINDEX('..',Email)=0)) AND @Email LIKE '[a-zA-Z0-9]'

但如果我输入特殊字母,例如&#39;#,$ *()!%^&amp; {} []&#39;例如as #$fe@df.com,它不会检测电子邮件中的特殊字符。有人可以帮我这个吗?我还需要在电子邮件中仅允许下划线和短划线,例如er_ds@op-a.com

谢谢

1 个答案:

答案 0 :(得分:0)

这是一个比较,它可以更简单地处理大多数当前指定的测试用例,实现为存储过程以进行测试:

{{1}}