【发布时间】:2018-07-17 10:29:48
【问题描述】:
如何验证 1 到 100 个货币值之间的 UITextfield,最多接受 2 个十进制值。
有效。 0.25 99.99, 1.99,100.00。 其他国家货币小数表示,也。 0,25 99,99 1,99 100,00
无效 00.25, 100.25, 0000000.00, 0.125, 9.567
NSNumberFormatter *numberFormatter = [[NSNumberFormatter alloc]init];
numberFormatter.locale = [NSLocale currentLocale];// this ensures the right separator behavior
numberFormatter.numberStyle = NSNumberFormatterCurrencyStyle;
numberFormatter.usesGroupingSeparator = YES;
numberFormatter.usesSignificantDigits = YES;
numberFormatter.currencyGroupingSeparator = numberFormatter.locale.groupingSeparator;
numberFormatter.decimalSeparator = numberFormatter.locale.decimalSeparator;
NSString *expression = @"^([0-9]+)?(\\.,([0-9]{1,2})?)?$";
NSRegularExpression *regex = [NSRegularExpression regularExpressionWithPattern:expression
options:NSRegularExpressionCaseInsensitive error:nil];
NSUInteger numberOfMatches = [regex numberOfMatchesInString:newString
options:0 range:NSMakeRange(0, [newString length])];
if (numberOfMatches == 0)
return NO;
在 UITextfield 内无法按下。瑞典货币小数表示“,”不是“。”我要工作计算两个输入值一个是 int 另一个值是 float
【问题讨论】:
-
NSNumberFormatter ?
-
其 NSNumberformatter 与货币相关!
-
@PrashantTukadiya 。感谢您的输入,我再次交叉检查我的代码与我的正则表达式的问题。 NSString *表达式 = @"^[0-9]*((\\.|,)[0-9]{0,2})?$";
标签: ios objective-c validation uitextfield nsnumberformatter