gpt4 book ai didi

postgresql - 用于验证电子邮件地址的 Postgres 函数

转载 作者:行者123 更新时间:2023-11-29 11:18:16 25 4
gpt4 key购买 nike

调用函数来验证电子邮件地址的检查约束对我来说效果不佳。

CREATE OR REPLACE FUNCTION f_IsValidEmail(text) returns BOOLEAN AS 
'select $1 ~ ''^[^@\s]+@[^@\s]+(\.[^@\s]+)+$'' as result
' LANGUAGE sql;



SELECT f_IsValidEmail('myemail@address.com');

该函数返回 false,这应该是 true。我尝试了其他几个正则表达式,但没有成功。谁能指出这个函数有什么问题?

Screenshot

最佳答案

这些答案中有很多接近正确的方式。这些是我提交的要点。

  • 您想使用域 -- 不是规则系统。
  • 不想使用正则表达式验证这些电子邮件地址。(2017 年 3 月更新:不再真实)

我显示two methods of how to do this the right on DBA.StackExchange.com .既要检查 MX 记录,又要使用 HTML5 规范。这是简短而甜蜜的。

CREATE EXTENSION citext;
CREATE DOMAIN email AS citext
CHECK ( value ~ '^[a-zA-Z0-9.!#$%&''*+/=?^_`{|}~-]+@[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])?)*$' );

SELECT 'foobar@bar.com'::email;
SELECT CAST('foobar@bar.com' AS email);

有关更多信息,我强烈建议您 read the answer in full .在回答中,我还展示了如何通过 Email::Valid 创建一个 DOMAIN,并解释了为什么我不再使用该方法。

关于postgresql - 用于验证电子邮件地址的 Postgres 函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4908211/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com