uitextfield如何解析NSString

时间:2013-11-06 08:57:03

标签: ios uitextfield nsregularexpression

我是iOS新手。 我有一个UITextField,我在其中添加如下值:1234,54678,8976

在方法shouldChangeCharactersInRage中我想每次取nsstring之后,。 意思是如果我在我的NSString中添加:1234我希望有1234 如果我有1234,我的NSStringg中只有5个

这是我到目前为止的代码:

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

    NSString *getNo=[textField.text stringByReplacingCharactersInRange:range withString:string];

    NSRegularExpression *regex = [NSRegularExpression regularExpressionWithPattern:@"\\ .*?," options:0 error:NULL];
    NSArray *matches = [regex matchesInString:getNo options:0 range:NSMakeRange(0, [getNo length])];
    NSTextCheckingResult *match = [matches lastObject];
    if (match!=nil){
        getNo=@"";
    }

在这种情况下的问题是,在以下情况中:1234,65而不是在我的getNo中有65,我将有一个空物体。

如何解决这个问题?

2 个答案:

答案 0 :(得分:1)

试试这个

NSArray *subStrings = [textFieldTextString componentsSeparatedByString:@","]; //this will returns array of strings separated by ,

double answer = [[subStrings lastObject] doubleValue];//get last value and type cast it

答案 1 :(得分:1)

试试这个。

-(BOOL)textField:(UITextField *)textField shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString *)string {    
    NSString *textFieldString=[textField.text stringByReplacingCharactersInRange:range withString:string];
    NSArray *subStrings = [textFieldString componentsSeparatedByString:@","];
    NSString *lastNumberString = [subStrings lastObject];

    NSString *trimmedString = [lastNumberString stringByTrimmingCharactersInSet:
                              [NSCharacterSet whitespaceCharacterSet]];
    return YES;
 }