我正在尝试验证用户输入的特殊字符或数字是否存在。
我已经尝试过此代码,但是当我的名字有一个像标记约翰这样的空间时,它被认为是错误。
let characterset = CharacterSet(charactersIn: "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ")
if name.rangeOfCharacter(from: characterset.inverted) != nil {
return false
}else{
return true
}
您可以将空格字符添加到用于初始化字符的字符串中。
或您可以使用:
let characterSet = CharacterSet.letters.union(.whitespaces)
这允许来自任何字母的字母。
无关,但您可以用:
替换该if/else
return name.rangeOfCharacter(from: characterset) != nil
您可以使用正则表达式。
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 {
}