我希望找到一种方法,允许在有效的电子邮件中使用中文字符。
我目前的代码是:
fileprivate func isValidEmail(testStr:String) -> Bool {
// print("validate calendar: \(testStr)")
let emailRegEx = "[A-Z0-9a-z._%+-]+@[A-Za-z0-9.-]+\\.[A-Za-z]{2,}"
let emailTest = NSPredicate(format:"SELF MATCHES %@", emailRegEx)
return emailTest.evaluate(with: testStr)
}
如何更改上述代码以允许中文字符?谢谢。
答案 0 :(得分:1)
试试这个:
以下Regex表达式用于允许其他语言。
(\p{L}),(\w+),(\w),
答案 1 :(得分:1)
如the API Reference for NSRegularExpression
中所述,您可以使用语法\p{UNICODE PROPERTY NAME}
来匹配具有指定Unicode Property的任何字符。如果您想在电子邮件地址中同时使用CJK和拉丁字符,可以尝试在正则表达式中使用“Han”Unicode属性,如下所示:
let emailRegEx = "([A-Z0-9a-z._%+-]|\\p{Han})+@[A-Za-z0-9.-]+\\.[A-Za-z]{2,}"