Я пытался реализовать проверку регулярного выражения для заданного названия города.
Мое регулярное выражение должно соответствовать названиям городов, таким как:
NY
San Francisco
München
København
Saint-Tropez
St. Lucia
До сих пор я искал в Интернете подобное регулярное выражение, но мне было трудно пытаться реализовать его быстро.
это регулярное выражение, которое я придумал, похоже, оно работает на других языках, но не на быстром:
^[a-zA-Z\\u0080-\\u024F\\s\\/\\-\\)\(\`\.\"\']+$
Также в качестве дополнительной информации я хотел бы реализовать ее в методе делегата UITextField:
shouldChangeCharactersIn
как то так:
override func textField(_ textField: UITextField,
shouldChangeCharactersIn range: NSRange,
replacementString string: String) -> Bool {
return validNameRegex.matches(string)
}
с использованием расширения NSRegularExpression:
extension NSRegularExpression {
convenience init(_ pattern: String) {
do {
try self.init(pattern: pattern)
} catch {
preconditionFailure("Illegal regular expression: \(pattern).")
}
}
func matches(_ string: String) -> Bool {
let range = NSRange(location: 0, length: string.utf16.count)
return firstMatch(in: string, options: [], range: range) != nil
}
}
Надеюсь, кто-нибудь может мне помочь. Заранее спасибо и с новым годом :) 1023 *