在多语言应用程序中验证输入

时间:2010-09-22 11:29:49

标签: iphone validation localization numeric

我正在开发一个支持英语和阿拉伯语的应用程序。该应用程序使用数字输入。在阿拉伯语言中,数字字符是不同的!那么,在这种情况下验证数字输入(数量,百分比,数量)的最佳方法是什么?

2 个答案:

答案 0 :(得分:0)

如果通过系统首选项面板更改了语言,则验证的默认实现应该有效。这article可能会有所帮助。

答案 1 :(得分:0)

我最终使用NSNumberFormatter来检查输入的有效性,而不是使用以下方法:

+ (BOOL)validateNumeric:(NSString *)numericString {
    NSString *regexExpression = @"^[-+]?\\d{0,9}$"; 
    NSPredicate *matchTextPredicate = [NSPredicate predicateWithFormat:@"SELF MATCHES %@", regexExpression]; 
    return [matchTextPredicate evaluateWithObject:numericString];
}

OR

- (BOOL)textField:(UITextField *)textField shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString *)string {

    switch (fieldValidationType) {
        case kValidationTypeAmount: {
                NSCharacterSet *unacceptedInput = nil;
                unacceptedInput = [[NSCharacterSet characterSetWithCharactersInString:CHARACTERS_AMOUNT] invertedSet];      
                if ([[self componentsSeparatedByCharactersInSet:unacceptedInput] count] > 1)
                    return NO;
                else 
                    return YES; 

        }

        default:
            return YES;
    }

    return YES;
}