首页 > 解决方案 > 使用 PL/SQL 正则表达式的 APEX 5.1 验证

问题描述

已搜索 Stack Overflow 并找不到此特定问题的答案。我有一个有效的 PL/SQL 表达式验证,用户名是一个电子邮件地址......

regexp_like (:P2_USERNAME, '^[A-Za-z]+[A-Za-z0-9.__.-]+@[A-Za-z0-9._.-]+\.[A-Za-z]{2,4}$')

现在客户希望能够拥有一个包含特殊字符的电子邮件地址。所以我改变了验证脚本如下......

regexp_like (:P2_USERNAME, '^[A-Za-z]+[A-Za-z0-9.__.-\&\\#]+@[A-Za-z0-9._.-]+\.[A-Za-z]{2,4}$');

它不再起作用,如果我尝试使用带有 & 或 # 的电子邮件地址,我会收到错误消息。例如,我在数据库中保存了以下电子邮件地址...

firstnm-lastnm&123@outlook.com

但是,这不适用于此验证。假设我错过了一些非常容易的事情 - 您的帮助将不胜感激。

标签: regexvalidationoracle-apex

解决方案


发现脚本需要是这样的......

regexp_like (:P2_USERNAME, '^[A-Za-z]+[A-Za-z0-9.__.-\&\#\-]+@[A-Za-z0-9._.-]+ .[A-Za-z]{2,4}$')

相同,但又略有不同。


推荐阅读