检查字符串是否在 Swift 中包含特殊字符
为了检查字符串是否在 swift 中包含特殊字符,我们可以使用诸如 if else 或 switch 的条件语句,但这需要执行很多条件,导致编程和执行非常耗时。因此在此示例中,我们将了解如何使用正则表达式完成相同的工作以及 swift 提供的另一种用于检查某个字符是否存在于字符集中的方法。
方法 1 − 使用正则表达式
让我们创建一个 String 的扩展,并向其中添加以下代码
extension String { var containsSpecialCharacter: Bool { let regex = ".*[^A-Za-z0-9].*" let testString = NSPredicate(format:"SELF MATCHES %@", regex) return testString.evaluate(with: self) } }
我们可以运行以下代码作为示例,如下所示。
override func viewDidLoad() { super.viewDidLoad() print("3r42323".containsSpecialCharacter) print("!--%332".containsSpecialCharacter) }
输出
以下是方法 1 的结果
现在我们用方法 2 查看同样的示例。
方法 2
let characterset = CharacterSet(charactersIn: "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789" ) if "3r42323".rangeOfCharacter(from: characterset.inverted) != nil { print("true") } else { print("false") } if "!--%332".rangeOfCharacter(from: characterset.inverted) != nil { print("true") } else { print("false") }
输出
生成的结果如下所示。
广告