首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >检查UITextField的输入是否仅为数字

检查UITextField的输入是否仅为数字
EN

Stack Overflow用户
提问于 2009-08-24 02:57:24
回答 19查看 105K关注 0票数 82

如何验证输入到UITextField的字符串?我想检查字符串是否为数字,包括小数点。

EN

回答 19

Stack Overflow用户

回答已采纳

发布于 2009-08-24 04:06:06

我在我的苹果应用程序中使用了这段代码,相同或相似的代码应该也适用于iPhone。它基于RegexKitLite正则表达式,并在文本无效时将文本变为红色。

static bool TextIsValidValue( NSString* newText, double &value )
{
    bool result = false;

    if ( [newText isMatchedByRegex:@"^(?:|0|[1-9]\\d*)(?:\\.\\d*)?$"] ) {
        result = true;
        value = [newText doubleValue];
    }
    return result;
}

- (IBAction) doTextChanged:(id)sender;
{
    double value;
    if ( TextIsValidValue( [i_pause stringValue], value ) ) {
        [i_pause setTextColor:[NSColor blackColor]];
        // do something with the value
    } else {
        [i_pause setTextColor:[NSColor redColor]];
    }
}
票数 35
EN

Stack Overflow用户

发布于 2010-10-01 18:43:16

你可以像下面这样用几行代码来完成:

BOOL valid;
NSCharacterSet *alphaNums = [NSCharacterSet decimalDigitCharacterSet];
NSCharacterSet *inStringSet = [NSCharacterSet characterSetWithCharactersInString:myInputField.text];
valid = [alphaNums isSupersetOfSet:inStringSet];    
if (!valid) // Not numeric

--这仅用于验证输入是否为数字字符。有关其他选项,请查看NSCharacterSet的文档。您可以使用characterSetWithCharactersInString指定任何一组有效的输入字符。

票数 118
EN

Stack Overflow用户

发布于 2011-07-07 21:05:45

#pragma mark - UItextfield Delegate

- (BOOL)textField:(UITextField *)textField shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString *)string {
    if ([string isEqualToString:@"("]||[string isEqualToString:@")"]) {
        return TRUE;
    }

    NSLog(@"Range ==%d  ,%d",range.length,range.location);
    //NSRange *CURRANGE = [NSString  rangeOfString:string];

    if (range.location == 0 && range.length == 0) {
        if ([string isEqualToString:@"+"]) {
            return TRUE;
        }
    }
    return [self isNumeric:string];
}

-(BOOL)isNumeric:(NSString*)inputString{
    BOOL isValid = NO;
    NSCharacterSet *alphaNumbersSet = [NSCharacterSet decimalDigitCharacterSet];
    NSCharacterSet *stringSet = [NSCharacterSet characterSetWithCharactersInString:inputString];
    isValid = [alphaNumbersSet isSupersetOfSet:stringSet];
    return isValid;
}
票数 13
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/1320295

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档