我想在编辑时验证文本字段中的文本。我有这个正则表达式@"^(01)?[- .]?(\\([2-9]\\d{2}\\)|[2-9]\\d{2})[- .]?\\d{3}[- .]?\\d{4}$"
并使用shouldChangeCharactersInRange
方法,如果输入了错误的符号,我想返回" NO",因此符号不会被打印。我尝试了NSPredicate
,但无法做到。
答案 0 :(得分:0)
将此扩展程序添加到您的类文件
extension String
{
var isValid: Bool {
do {
let regex = try NSRegularExpression(pattern: "your regularexpression here", options: .CaseInsensitive)
return regex.firstMatchInString(self, options: NSMatchingOptions(rawValue: 0), range: NSMakeRange(0, self.characters.count)) != nil
} catch {
return false
}
}
}
在shouldChangeCharactersInRange
文本字段功能
if (label.text!.isValid)
{
//do your action here
}