0

iOS でテキストの書式設定を処理するにはどうすればよいですか? Currency や Decimal のスタイルについて話しているのではありません。iOSには がないのでsetFormat()、ちょっと複雑です。

必要な形式の 2 つの例:123.456.789-10123.456.789/1000-00.

私の目的は、ユーザーの入力に合わせてテキスト フィールドをフォーマットすることです。たとえば、電話番号を入力するときの通常のサイトと同様です。モデルなどに由来するものではありません。ユーザーは数字を入力するだけでよく、必要に応じて".","/"またはを挿入します"-"

4

2 に答える 2

4

次のように、正規表現を使用して書式設定を行うことができます。

NSRegularExpression *fmt = [NSRegularExpression
    regularExpressionWithPattern:@"(.{1,3})(.{1,3})(.{1,3})(.{1,2})"
                         options:0
                           error:NULL];
NSMutableString *str = [NSMutableString stringWithString:@"12345678910"];
[fmt replaceMatchesInString:str
                    options:0
                      range:NSMakeRange(0, str.length)
               withTemplate:@"$1.$2.$3-$4"];

これにより、文字列が次のように変換されます123.456.789-10

ユーザーが入力するときにこのフォーマットを動的に適用するには、NSRegularExpression *fmt事前に作成して に保存し、メソッドUITextFieldDelegateで使用しますtextField:shouldChangeCharactersInRange:replacementString:

于 2012-07-27T19:10:27.443 に答える
1

有効な温度入力を確認するために、数日前に独自の方法を作成しました。以下をチェックしなければならなかったので、それも少し面倒でした:

[my string characterAtIndex:index];4文字しかないので、各文字 を使用してチェックすることになりました。

編集:

ここにいくつかの擬似コードがあります

for (every char in your string)
    if(the index of the char % 3 == 2) //every third char, 0,2,5...
        the char must be a . or / or -

    else
        the char must be a number
于 2012-07-27T18:41:17.937 に答える