檢查字串是否在 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+ 瀏覽量

開啟您的職業生涯

完成課程並獲得認證

開始
廣告