NSString が数字のみで構成されているかを判定する
暗証番号とかパスコードの入力画面を作る際に数字だけの入力を許可したい場合がある。
文字列の入力制限は UITextFieldDelegate
のメソッド
- (BOOL)textField:(UITextField *)textField shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString *)string;
で行うとして実装部分。
方法はいろいろありそうだけどいくつか簡潔っぽいのを。
- 1つ目は
NSCharacterSet
を使って文字列が数字のみで構成されているかを判定。 - 2つ目は
NSCharacterSet
を使って文字列に数字以外のものが1つも含まれていないかを判定。 - 3つ目はちょっと強引かも。
NSRegularExpression
を使って数字のみが含まれているかを判定。 - 4つ目は
NSRegularExpression
を使って数字以外のものが1つも含まれていないかを判定。 - 5つ目は
NSPredicate
と正規表現を使って数字のみが含まれているかを判定。
数字以外にもいろいろと応用は効きそう。