檢查字串是否在 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") }
輸出
生成的結果如下所示。
廣告