На основе этого расширения, найденного в другом месте:
extension String {
func matches(_ regex: String) -> Bool {
return self.range(of: regex, options: .regularExpression, range: nil, locale: nil) != nil
}
}
и создайте регулярное выражение, содержащее разрешенные символы, такие как
let mystra = "چهار راه"
let mystrb = "خیابان."
let mystrc = "خیابان 5"
let mystrd = "چرا copy کردی؟" //and so on
for a in mystra {
if String(a).matches("[\u{600}-\u{6FF}\u{064b}\u{064d}\u{064c}\u{064e}\u{064f}\u{0650}\u{0651}\u{0020}]") { // add unicode for dot, comma, and other needed puctuation marks, for now I added space etc
} else { // not in range
print("oh no--\(a)---zzzz")
break // or return false
}
}
. Убедитесь, что вы создали Unicode, необходимый с использованием приведенной выше модели.Результат для других строк для a в mystrb ... и т. Д. Ой нет - .--- zzzz ой нет - 5 --- zzzz ой нет - c --- zzzz
Наслаждайся