正则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式本身:
上面的答案工作($为空),但我只是试过这一点,它也可以像这样留下空白:
/\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, ^$
是由多人提到,并会正常工作。