ios - 如何在 swift 中允许电子邮件字符串中存在空格?

标签 ios regex email

我有一个电子邮件文本字段,我在其中输入电子邮件地址。现在,如果我在电子邮件地址末尾输入空格,那么它仍然被视为无效电子邮件。但这不应该是因为用户可能会错误地输入此类输入,我应该修剪末尾或开始处的空格。

我正在使用下面的代码来检查验证。请告诉我最好的解决方案?

var isValidEmail: Bool {
    let emailRegEx = "[A-Z0-9a-z._%+-]+@[A-Za-z0-9.-]+\\.[A-Za-z]{2,64}" //"[A-Z0-9a-z._%+-]+@[A-Za-z0-9.-]+\\.[A-Za-z]{2,6}"
    let emailTest = NSPredicate(format: "SELF MATCHES %@", emailRegEx)
    return emailTest.evaluate(with: self)
}

最佳答案

您可以使用允许尾随空白字符的模式:

let emailRegEx = "[A-Z0-9a-z._%+-]+@[A-Za-z0-9.-]+\\.[A-Za-z]{2,64}\\s*"
                                                                    ^^^

\s*模式匹配 0 个或多个空白字符。

请参阅regex demo .

您的模式将匹配:

  • 字符串的开头(它隐含在 MATCHES 使用的模式中)
  • [A-Z0-9a-z._%+-]+ - 字符类中指定的1个或多个字母、数字和符号
  • @ - 一个@字符
  • [A-Za-z0-9.-]+ - 1+ ASCII 字母数字字符,.或/和-字符
  • \\. - 一个点
  • [A-Za-z]{2,64} - 2 至 64 个 ASCII 字母
  • \\s* - 0+ 个空格。

关于ios - 如何在 swift 中允许电子邮件字符串中存在空格?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47138621/

相关文章:

ios - Xcode 4.2 + armv6 + release = 错误?

iphone - 将 UITextField 添加到cameraOverlay

ios - 使用下一个上层对象的 anchor

iphone - 选项卡与导航相结合的最佳实践

c# - 从具有特定模式的字符串中检索数字

windows - 如何使用 MAPI 分离内联图像和附件?

javascript - 正好有 3 个字符和 10 个数字的 13 个字符字母数字字符串的正则表达式

JavaScript 变量名正则表达式

html - 扩展模板不适用于 FOSUserBundle 电子邮件。交响乐2

php - 允许通过自己的网络服务器 iOS 7 发送电子邮件?