【问题标题】:Email Regex to allow only 1 character aposthrope before @symbol电子邮件正则表达式在 @symbol 之前只允许 1 个字符撇号
【发布时间】:2014-03-31 11:43:32
【问题描述】:

如何修改此正则表达式的电子邮件?目前我的正则表达式不允许使用撇号:

"^[A-Za-z0-9_\\-\\.]+[@]([A-Za-z0-9\\-\\.]+)+[\\.]([A-Za-z]{2,4})$";

现在我想添加撇号,但是请求是在@符号之前只允许 1 个撇号。

我试过用这个:

"^([A-Za-z0-9_\\-\\.]+[']{0,1})+[@]([A-Za-z0-9\\-\\.]+)+[\\.]([A-Za-z]{2,4})$";

它允许输入撇号,但是我可以在@符号之前输入多个撇号

结果:

test''test@yahoo.com -> 不允许

test'tes't@yahoo.com -> 允许(预计不允许)

预期结果是@符号前只允许使用一个撇号。

【问题讨论】:

标签: javascript regex


【解决方案1】:

这是您的正则表达式的修改版本:

"^([A-Za-z0-9_\\-\\.]*?)'?([A-Za-z0-9_\\-\\.]+)[@]([A-Za-z0-9\\-\\.]+)+[\\.]([A-Za-z]{2,4})$";

它的工作方式是 - 它允许可选字符,然后是可选撇号,然后是非可选字符。

唯一的缺点是你不能在 @ 之前有一个 '(撇号之后也至少有 2 个字符),这可以进行更多调整,但我真的没有看到任何意义

【讨论】:

  • 这是一个修改过的正则表达式还是完全是另一个正则表达式?如果只是稍作修改,最好能包含您所做的更改。
  • 它是一个修改过的正则表达式。它有可选字符 + 可选撇号 + 字符。唯一的缺点是你不能在 @ 之前有一个 ' (撇号后也至少有 2 个字符)这可以进行更多调整,但我根本看不到任何意义
  • 是的,将其放在您的答案中以使其更清楚可能是个好主意。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-08-25
  • 2012-01-12
  • 2013-04-10
  • 1970-01-01
  • 2023-04-07
  • 2021-05-22
相关资源
最近更新 更多