/*在代理方法中调用 如下类似调用方法
- (BOOL)textField:(UITextField *)textField shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString *)string{
NSString *toString = [textField.text stringByReplacingCharactersInRange:range withString:string];
return [[Tool sharedInstance] priceFormat:toString];
}
*/
下面是网上搜集的一个很好的检测金额格式的写法,不过无意中发现它无法检测出 0. 这一金额格式
- (BOOL)priceFormat:(NSString *)price{
if (price.length > 0) {
//支持+ - 符号 支持的金额格式
NSString *stringRegex = @"(\\+|\\-)?(([0]|(0[.]\\d{0,2}))|([1-9]\\d{0,6}(([.]\\d{0,2})?)))?";
NSPredicate *pricePredicate = [NSPredicate predicateWithFormat:@"SELF MATCHES %@", stringRegex];
if ([pricePredicate evaluateWithObject:price] == NO) {// 不满足该正则,就不让用户输入,执行return NO。
return NO;
}
}
// 满足该正则,让用户输入,执行return YES
return YES;
}
请教,怎样写正则才能检测出这个金额格式 0.