在 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")
}

输出

生成的结果如下所示。



关于我们 | 隐私条款 | 学习路线
返回顶部