我正在尝试验证在我的名字字段中是否存在用户输入的特殊字符或数字。
我尝试过这个代码,但是当我的名字包含空格时,例如Mark John,它被认为是错误的。
let characterset = CharacterSet(charactersIn: "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ")
if name.rangeOfCharacter(from: characterset.inverted) != nil {
return false
}else{
return true
}
发布于 2019-05-10 16:07:04
您可以在用于初始化CharacterSet的字符串中添加空格字符。
或者,您可以使用:
let characterSet = CharacterSet.letters.union(.whitespaces)
这允许任何字母表中的字母。
无关,但您可以将该if/else
替换为:
return name.rangeOfCharacter(from: characterset) != nil
发布于 2019-05-10 17:33:06
您可以使用正则表达式,如。
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 {
}
https://stackoverflow.com/questions/56081169
复制