有没有办法让文本字段迅速接受字母和空白

时间:2019-05-10 16:03:17

标签: swift

我正在尝试验证我的名字字段中是否存在用户输入的特殊字符或数字。

我已经尝试了这段代码,但是当我的名字有一个空格(例如Mark John)时,它被认为是错误的。

let characterset = CharacterSet(charactersIn: "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ")
           if name.rangeOfCharacter(from: characterset.inverted) != nil {
            return false
        }else{
            return true
    }

2 个答案:

答案 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 {

}