Computer >> คอมพิวเตอร์ >  >> การเขียนโปรแกรม >> IOS

ตรวจสอบว่าสตริงมีอักขระพิเศษใน Swift . หรือไม่


ในการตรวจสอบว่าสตริงมีอักขระพิเศษใน swift หรือไม่ เราสามารถใช้ conditionals เช่น if else หรือ switch ได้ แต่จะต้องใช้เงื่อนไขจำนวนมากในการดำเนินการ ทำให้การเขียนโปรแกรมและการดำเนินการใช้เวลานาน ในตัวอย่างนี้ เราจะเห็นวิธีการทำงานเดียวกันกับนิพจน์ทั่วไปและอีกวิธีหนึ่งที่ช่วยให้รวดเร็วในการตรวจสอบว่ามีอักขระบางตัวในชุดอักขระหรือไม่

วิธีที่ 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

ตรวจสอบว่าสตริงมีอักขระพิเศษใน Swift . หรือไม่

ตอนนี้เราจะมาดูตัวอย่างเดียวกันกับวิธีที่ 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")
}

ผลลัพธ์

ผลลัพธ์ที่ได้แสดงไว้ด้านล่าง

ตรวจสอบว่าสตริงมีอักขระพิเศษใน Swift . หรือไม่