Мне знакомы с регулярными выражениями pcre, однако они не работают быстро.
^([1-9]\d{0,2}(\,\d{3})*|([1-9]\d*))(\.\d{2})?$
для проверки чисел, таких как 1,000,000.00
Однако, поместив это в мою быструю функцию, вы получите сообщение об ошибке.
extension String {
func isValidNumber() -> Bool {
let regex = NSRegularExpression(pattern: "^([1-9]\d{0,2}(\,\d{3})*|([1-9]\d*))(\.\d{2})?$", options: .CaseInsensitive, error: nil)
return regex?.firstMatchInString(self, options: nil, range: NSMakeRange(0, countElements(self))) != nil
}
}
"Неверная escape-последовательность в litteral"
Это, конечно, потому что pcre использует символ "\", который swift интерпретирует как побег (я верю?)
Так как я не могу просто использовать регулярные выражения, к которым я привык. Как перевести их для совместимости с кодом Swift?