正则expression式空string或电子邮件

我发现了很多正则expression式电子邮件validation,但我没有发现任何将接受一个空string。 这只能通过正则expression式吗? 只接受空string还是电子邮件? 我只想在正则expression式上使用它。

这个正则expression式模式将匹配一个空string:

^$ 

这将匹配(粗糙)电子邮件或空string:

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

匹配空string或电子邮件

 (^$|^[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)$) 

匹配空string或电子邮件,但也匹配任何数量的空白

 (^\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)$) 

详细了解电子邮件匹配正则expression式本身:

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

上面的答案工作($为空),但我只是试过这一点,它也可以像这样留下空白:

 /\A(INTENSE_EMAIL_REGEX|)\z/i 

同样的事情以相反的顺序

 /\A(|INTENSE_EMAIL_REGEX)\z/i 

这将解决,它会接受空string或确切的电子邮件ID

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

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

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

如果你在rails中使用它 – activerecordvalidation你可以设置allow_blank: true

如:

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

不要将电子邮件与正则expression式匹配。 这是非常丑陋,漫长而复杂 ,你的正则expression式parsing器可能无法处理它。 尝试find匹配它们的库例程。 如果您只想解决匹配电子邮件地址的实际问题(即,如果您想要(通常)正常工作的错误代码),请使用其他人提交的regular-expressions.info链接。

至于空string, ^$是由多人提到,并会正常工作。