正则表达式空字符串或电子邮件

时间:2011-02-21 09:00:09

标签: regex email string

我在SO中发现了很多Regex电子邮件验证,但我没有发现任何接受空字符串的内容。这只能通过Regex实现吗?仅接受空字符串或电子邮件?我想只在Regex上使用它。

7 个答案:

答案 0 :(得分:249)

此正则表达式模式将匹配空字符串:

^$

这将(粗略地)匹配电子邮件或空字符串:

(^$|^.*@.*\..*$)

答案 1 :(得分:6)

匹配空字符串或电子邮件

(^$|^[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\.(?:[a-zA-Z]{2}|com|org|net|edu|gov|mil|biz|info|mobi|name|aero|asia|jobs|museum)$)

匹配空字符串或电子邮件,但也匹配任意数量的空白

(^\s*$|^[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\.(?:[a-zA-Z]{2}|com|org|net|edu|gov|mil|biz|info|mobi|name|aero|asia|jobs|museum)$)

详细了解匹配正则表达式的电子邮件:

http://www.regular-expressions.info/email.html

答案 2 :(得分:1)

上面的答案工作($为空),但我只是尝试了这个,它也可以像这样留空:

/\A(INTENSE_EMAIL_REGEX|)\z/i

相反的顺序

/\A(|INTENSE_EMAIL_REGEX)\z/i

答案 3 :(得分:0)

不要将电子邮件与正则表达式匹配。它是extremely ugly and long and complicated,你的正则表达式解析器可能无法处理它。尝试找到匹配它们的库例程。如果您只想解决匹配电子邮件地址的实际问题(也就是说,如果您想要(通常)工作的错误代码),请使用其他人提交的regular-expressions.info链接

至于空字符串,^$被多人提及,并且可以正常工作。

答案 4 :(得分:0)

我更喜欢/^\s+$|^$/gi来匹配空格和空格。



console.log("  ".match(/^\s+$|^$/gi));
console.log("".match(/^\s+$|^$/gi));




答案 5 :(得分:0)

这将解决,它将接受空字符串或确切的电子邮件ID

"^$|^([\w\.\-]+)@([\w\-]+)((\.(\w){2,3})+)$"

答案 6 :(得分:0)

如果您在rails中使用它 - 可以设置activerecord验证 allow_blank: true

如:

validates :email, allow_blank: true, format: { with: EMAIL_REGEX }