2012-02-15 8 views
0

いくつかのUITextFieldでユーザーが入力するNSStringを検証する必要があります。NSStringのバリデーション

私に必要な2種類のバリデーションがあります。

NSStringオブジェクトが正当な10進数であるかどうかを判断します。

たとえば、@ "100"、@ "10.1"、@ "0.11"はすべて合法ですが、@ "100.11.1"は合法ではありません。

第2に、NSStringオブジェクトがスペースのみの文字列ではないかどうかを判断します。

たとえば、@ "abc"、@ "ab ---- c"はすべて合法ですが、@ "-----"、@ ""はそうではありません。

ここでは " - "はスペース ""を意味します。

これら2種類のNSStringを検証するにはどうすればよいですか?

ありがとうございます!

答えて

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 
} 
+0

おかげで多くのことを、私はこれは私が必要としたいですね! –

0

最初の検証では小数点を数えます。ゼロが有効です。 1つ以上のものは無効です。そして1つは常に有効です( ".123"が有効であると仮定します)。

2番目の検証では、空の文字列@""と元の文字列を比較して、すべてのスペースを削除できます。それらが等しい場合、元の文字列は無効です。

SOを検索してください。例えば、Number of Occurrences of a Character in NSStringが役に立ちます。