我有一个电子邮件文本字段,我在其中输入电子邮件地址。现在,如果我在电子邮件地址末尾输入空格,那么它仍然被视为无效电子邮件。但这不应该是因为用户可能会错误地输入此类输入,我应该修剪末尾或开始处的空格。
我正在使用下面的代码来检查验证。请告诉我最好的解决方案?
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/