0

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

4

2 回答 2

0

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

于 2010-09-22T11:43:18.060 回答
0

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

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

或者

- (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;
}
于 2010-10-04T12:48:02.027 回答