NSString验证

时间:2012-02-15 01:56:48

标签: ios validation nsstring

我需要在一些UITextField中验证用户输入的一些NSString。

我需要2种验证。

1,判断NSString对象是否为合法的十进制数。

例如,@“100”,@“10.1”,@“0.11”都是合法的,但@“100.11.1”不是。

第2,判断NSString对象是否不是仅空格字符串。

例如,@“abc”,@“ab ---- c”都是合法的,但@“-----”,@“”不是。

这里“ - ”表示空格“”。

如何验证这两种NSString?

非常感谢!

2 个答案:

答案 0 :(得分:2)

第一部分试试这个

NSNumberFormatter *formatter = [[[NSNumberFormatter alloc] init] autorelease];
[formatter setNumberStyle:NSNumberFormatterDecimalStyle];
[formatter setAllowsFloats:YES];
[formatter setDecimalSeparator:@"."];

NSNumber *number = [formatter numberFromString: inputString];

if(number == nil)
{
  //invalid input string
}

对于第二部分,试试这个:

NSString *str = [inputString stringByReplacingOccurrencesOfString:@" " withString:@""];
if([str length] == 0)
{
    //invalid input string
}

答案 1 :(得分:0)

对于第一次验证,您可以计算小数点。零有效。任何大于一的都是无效的。一个总是有效的(假设“.123”有效)。

对于第二个验证,您可以将空字符串@""与原始字符串进行比较,并删除所有空格。如果它们相等,则原始字符串无效。

搜索SO。例如,Number of Occurrences of a Character in NSString可能会有所帮助。