问题描述
汤姆:
我正在尝试使用此功能来验证电子邮件地址。
我正在阅读regexp函数有512字节的限制。
有没有办法解决这个问题或更好的方法?
谢谢!
米切尔
我正在尝试使用此功能来验证电子邮件地址。
我正在阅读regexp函数有512字节的限制。
有没有办法解决这个问题或更好的方法?
谢谢!
米切尔
CREATE OR REPLACE FUNCTION is_valid_email_address(p_email IN VARCHAR2)
RETURN CHAR IS
cemailregexp CONSTANT VARCHAR2(1000) := '^[a-z0-9!#$%&''*+/=?^_`{|}~-]+(\.[a-z0-9!#$%&''*+/=?^_`{|}~-]+)*@([a-z0-9]([a-z0-9-]*[a-z0-9])?\.)+([A-Z]{2}|arpa|biz|com|info|intww|name|net|org|pro|aero|asia|cat|coop|edu|gov|jobs|mil|mobi|museum|pro|tel|travel|post|fund|attorney|mortgage|network|properties|property|realtor|realty|re|rent|loans|finance|link|zone|builders|business|mls|estate|xyz|global|company|capital|icloud|win|kr|agency|homes|house|win|group|law|casa|cbre|work|team|investments|partners|management|consulting|services|legal|vet|bet|space|one|club|hockey|football|baseball)$';
BEGIN
IF regexp_like(p_email,cemailregexp,'i') THEN
RETURN 'Y';
ELSE RETURN 'N';
END IF;
EXCEPTION
WHEN OTHERS THEN
RETURN 'N';
END;
/专家解答
不,正则表达式的最大长度是512个字节。
有更好的方法吗?
不用麻烦了!
建立一个完美的电子邮件正则表达式实际上是不可能的。这是一个很大的努力,当它拒绝他们的电子邮件地址时,你仍然会讨厌 ~ 1% 的客户。只需检查它包含一个 @ 符号,然后将其保留。
但如果你真的必须写一个电子邮件正则表达式验证器,请阅读以下内容:
https://www.regular-expressions.info/email.html
有更好的方法吗?
不用麻烦了!
建立一个完美的电子邮件正则表达式实际上是不可能的。这是一个很大的努力,当它拒绝他们的电子邮件地址时,你仍然会讨厌 ~ 1% 的客户。只需检查它包含一个 @ 符号,然后将其保留。
但如果你真的必须写一个电子邮件正则表达式验证器,请阅读以下内容:
https://www.regular-expressions.info/email.html
「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。




