Computer >> Máy Tính >  >> Lập trình >> IOS

Kiểm tra xem chuỗi có chứa các ký tự đặc biệt trong Swift hay không

Để kiểm tra xem một chuỗi có chứa ký tự đặc biệt trong swift hay không, chúng ta có thể sử dụng các điều kiện như if else hoặc switch nhưng điều đó sẽ cần rất nhiều điều kiện để được thực thi, làm cho việc lập trình cũng như thực thi tốn thời gian. Vì vậy, trong ví dụ này, chúng ta sẽ xem cách thực hiện tác vụ tương tự với biểu thức chính quy và một phương thức khác mà swift cung cấp để kiểm tra xem một số ký tự có tồn tại trong một bộ ký tự hay không.

Phương pháp 1 - Sử dụng biểu thức chính quy

Hãy tạo một phần mở rộng của Chuỗi và thêm mã sau vào đó

extension String {
   var containsSpecialCharacter: Bool {
      let regex = ".*[^A-Za-z0-9].*"
      let testString = NSPredicate(format:"SELF MATCHES %@", regex)
      return testString.evaluate(with: self)
   }
}

Chúng ta có thể chạy đoạn mã sau như một ví dụ minh họa bên dưới.

override func viewDidLoad() {
   super.viewDidLoad()
   print("3r42323".containsSpecialCharacter)
   print("!--%332".containsSpecialCharacter)
}

Đầu ra

Đây là kết quả cho phương pháp 1

Kiểm tra xem chuỗi có chứa các ký tự đặc biệt trong Swift hay không

Bây giờ chúng ta sẽ thấy cùng một ví dụ với phương pháp 2.

Phương pháp 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")
}

Đầu ra

Kết quả được tạo ra được hiển thị bên dưới.

Kiểm tra xem chuỗi có chứa các ký tự đặc biệt trong Swift hay không