文本场是否只接受Swift中的字母和白色空间,有没有办法



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

我已经尝试过此代码,但是当我的名字有一个像标记约翰这样的空间时,它被认为是错误。

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 {
}

相关内容

最新更新