Oracle Apex Email Validation接受单个用户邮件ID

时间:2017-12-20 05:40:18

标签: oracle oracle-apex oracle-apex-5

我有一个项目可以输入电子邮件ID" item_email"

我需要对电子邮件ID项目进行验证" item_email"它不应该接受多个电子邮件ID。

有没有可能做到这一点,请帮我继续。

1 个答案:

答案 0 :(得分:0)

简单验证;计算@s的数量。例如:

SQL> with test as
  2  (select 'lf@gmail.com' email from dual union
  3   select 'lf@gmail.com bf@gmail.com' from dual
  4  )
  5  select regexp_count(email, '@') cnt
  6  from test;

       CNT
----------
         1
         2

SQL>

如果此类查询返回1,则项目包含一个"电子邮件"地址。

但是,请考虑另一个验证 - 输入该项目的值是否真的像电子邮件。因为,如果某人仅输入" @",那将通过之前的验证,但它肯定不是有效的电子邮件地址。

另一方面,也许您已经执行了验证。在这种情况下,无视该异议。

[在阅读OP的评论后由LF编辑]:

在电子邮件项目上创建验证(例如,其名称为:P3_E_MAIL)。它的类型应该是" PL / SQL函数(返回错误文本)"及其代码

if regexp_count(:P3_E_MAIL, '@') > 1 or
   not regexp_like(:P3_E_MAIL, '^[a-zA-Z0-9._%-]+@[a-zA-Z0-9._%-]+\.[a-zA-Z]{2,4}$') 
then
   return ('E-mail address is incorrect');
end if;

看看您是否对此类代码感到满意。