我需要在一些UITextField中验证用户输入的一些NSString。
我需要2种验证。
1,判断NSString对象是否为合法的十进制数。
例如,@“100”,@“10.1”,@“0.11”都是合法的,但@“100.11.1”不是。
第2,判断NSString对象是否不是仅空格字符串。
例如,@“abc”,@“ab ---- c”都是合法的,但@“-----”,@“”不是。
这里“ - ”表示空格“”。
如何验证这两种NSString?
非常感谢!
答案 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可能会有所帮助。