【问题标题】:Oracle Apex Email Validation to accept single user mail idOracle Apex 电子邮件验证以接受单用户邮件 ID
【发布时间】:2018-01-31 14:17:00
【问题描述】:

我有一个项目要输入电子邮件 ID“item_email”

我需要验证电子邮件 ID 项“item_email”,它不应接受多个电子邮件 ID。

有没有办法做到这一点,请帮我继续。

【问题讨论】:

  • 不要在有关 Oracle Apex 的问题中添加标签“apex”、“apex-code”和“plsqldeveloper”。这是完全不同的技术。

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


【解决方案1】:

一个简单的验证;计算@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,则项目包含一个“电子邮件”地址。

但是,考虑另一个验证 - 输入到该项目的值是否真的看起来像一封电子邮件。因为,如果有人只输入“@”,那将通过之前的验证,但它肯定不是有效的电子邮件地址。

另一方面,也许您已经执行了该验证。在这种情况下,请忽略该反对意见。

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

在电子邮件项目上创建验证(例如,其名称是 :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;

看看你对这样的代码是否满意。

【讨论】:

  • 您好,如果我在电子邮件验证中添加此查询,它不起作用
  • 您需要先采用它才能使用它。也许提供你到目前为止所做的事情
  • 以下验证在 apex 中用于电子邮件文本字段,由于“-”,我无法添加电子邮件“jean-pierre.daltin@oracle.com”,我需要包含此邮件id也。请修改下面的正则表达式。 ^(([a-zA-Z0-9_\-\.]+)@(([[0-9]{1,3}\.[0-9]{1,3}\.[0-9 ]{1,3}\.)|(([a-zA-Z0-9\-]+\.)+))([a-zA-Z]{2,4}|[0-9]{ 1,3})(]?)(\s*,\s*|\s*$))*$
  • 呸!错误地解释了评论并恢复了修改。
猜你喜欢
  • 2018-07-10
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-02-15
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多