我正在尝试验证我的名字字段中是否存在用户输入的特殊字符或数字。
我已经尝试了这段代码,但是当我的名字有一个空格(例如Mark John)时,它被认为是错误的。
let characterset = CharacterSet(charactersIn: "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ")
if name.rangeOfCharacter(from: characterset.inverted) != nil {
return false
}else{
return true
}
答案 0 :(得分:0)
您可以在用于初始化CharacterSet的字符串中添加空格字符。
或者您可以使用:
let characterSet = CharacterSet.letters.union(.whitespaces)
这允许使用任何字母的字母。
不相关,但您可以将if/else
替换为:
return name.rangeOfCharacter(from: characterset) != nil
答案 1 :(得分:0)
您可以使用正则表达式。
do {
let regex = try NSRegularExpression(pattern: ".*[^A-Za-z ].*", options: [])
if regex.firstMatch(in: nameValue, options: [], range: NSMakeRange(0, nameValue.characters.count)) != nil {
self.showAlert(message: "Must not contain Number in Name")
} else {
}
}
catch {
}