/*在代理方法中調用 如下類似調用方法
- (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.