检查字符串是否在 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")
}

输出

生成的结果如下所示。

更新于: 2020 年 6 月 29 日

3K+ 浏览量

开启您的职业生涯

完成课程并获得认证

开始
广告