【问题标题】:RegEx compiled with RFC 2822, 3.6.2使用 RFC 2822、3.6.2 编译的 RegEx
【发布时间】:2012-11-02 22:04:05
【问题描述】:

我在 SwiftMailer 拒绝地址开头或结尾包含点的电子邮件时遇到问题(类似于内部的多个点)。我想让我的应用程序注意到这些问题。

过滤错误电子邮件地址的正则表达式应该是什么? (错误的意思是那些没有用整个标准编译的)

【问题讨论】:

标签: javascript regex rfc2822


【解决方案1】:
function check(mail) {
  return !mail.match(/^\.|\.$/);
}
check('amshaegar@example.org'); // true
check('amshaegar@example.org.'); // false
check('.amshaegar@example.org'); // false

函数检查期望邮件地址为字符串,并检查开头或结尾是否有没有点(.)。

为了检测多个点(...),你的函数看起来像这样:

function check(mail) {
  return !mail.match(/^\.|\.{2,}|\.$/);
}

【讨论】:

    【解决方案2】:

    下面会在字符串的开头或字符串的结尾找到一个点...

    ^\.|\.$
    

    【讨论】:

    • 谢谢。我还想知道的是,整个 RegEx 是否符合 RFC 2822 3.6.2。
    • 这个正则表达式效率低,不需要匹配表达式的其余部分。
    猜你喜欢
    • 2019-07-11
    • 1970-01-01
    • 1970-01-01
    • 2020-07-01
    • 2012-12-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-07-03
    相关资源
    最近更新 更多