我在SO中发现了很多Regex电子邮件验证,但我没有发现任何接受空字符串的内容。这只能通过Regex实现吗?仅接受空字符串或电子邮件?我想只在Regex上使用它。
答案 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)$)
详细了解匹配正则表达式的电子邮件:
答案 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 }