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") }
출력
생성된 결과는 아래와 같습니다.