【问题标题】:Regex for Valid Email address or Valid alpha numeric check有效电子邮件地址或有效字母数字检查的正则表达式
【发布时间】:2013-03-27 11:20:44
【问题描述】:

您好,我的 MVC 3 模型中有一个名为 UserName 的字段。此属性可以是有效的电子邮件地址,也可以是有效的 AlphaNumeric。我如何编写 Regex Express 来检查这两件事(有效的电子邮件或有效的字母数字)。

我正在使用的有效电子邮件表达式是

"^[_a-zA-Z0-9\'-]+(\.[_a-zA-Z0-9\'-]+)*@[a-zA-Z0-9-]+(\.[a-zA-Z0-9-]+)*\.(([0-9]{1,3})|([a-zA-Z]{2,3})|(name))$"

【问题讨论】:

  • 您使用的是什么正则表达式实现?电子邮件地址或字母数字字符串的内容是否有任何限制?

标签: regex


【解决方案1】:

假设您要匹配的字母数字字符串而不是电子邮件地址真的只是 A-Z0-9,那么您可以使用已有的...

^[_a-zA-Z0-9\'-]+(\.[_a-zA-Z0-9\'-]+)*@[a-zA-Z0-9-]+(\.[a-zA-Z0-9-]+)*\.(([0-9]{1,3})|([a-zA-Z]{2,3})|(name))$

...并用管道将其包裹在括号中以将其指示为可选组...

^([_a-zA-Z0-9\'-]+(\.[_a-zA-Z0-9\'-]+)*@[a-zA-Z0-9-]+(\.[a-zA-Z0-9-]+)*\.(([0-9]{1,3})|([a-zA-Z]{2,3})|(name))|[a-zA-Z0-9]+)$

这似乎是一个过于简单的解决方案,请给出您迄今为止所做的工作,这让我想知道这是否有什么问题???

【讨论】:

  • 什么是正确的语法。由于 $ 符号前的右括号,此抛出错误 '(name))|[a-zA-Z0-9]+)$'。 '(name))|[a-zA-Z0-9]+$' 是正确的还是需要用括号括起来。
  • 我在这里拥有的正则表达式模式在我测试时有效。仔细检查您在复制时没有意外删除任何括号或括号。您使用什么语言?
【解决方案2】:

如果你想要字母数字(必须包含单个字母和单个数字)试试这个

(?=[0-9a-zA-Z]*[a-zA-Z][0-9a-zA-Z]*)(?=[0-9a-zA-Z]*[0-9][0-9a-zA-Z]*)(^[0-9a-zA-Z]+$)

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2017-10-05
    • 2010-10-16
    • 2010-10-11
    • 1970-01-01
    • 2011-02-20
    • 2016-02-14
    • 2017-06-21
    • 1970-01-01
    相关资源
    最近更新 更多