在 Swift 中检查字符串是否包含特殊字符
swiftiosmobile developmentiphone更新于 2026/1/17 14:07:17
在 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")
}
输出
生成的结果如下所示。
