私の問題は、数字のテキストフィールドがあり、この数字を(xxx) xxx-xxxx のような電話形式に変換する必要があることです。このコードで正規表現を試しました:
wholeText = [wholeText stringByReplacingOccurrencesOfString:@"(\\d{1,3})(\\d{0,3})(\\d{0,4})"
withString:@"($1) $2-$3"
options:NSRegularExpressionSearch
range:NSMakeRange(0, wholeText.length)];
NSLog(@"wholeText = %@", wholeText);
テキストフィールドにテキストを徐々に入力すると、次のようにNSLog
出力されます。
wholeText = (1) -
wholeText = (12) -
wholeText = (123) -
wholeText = (123) 4-
wholeText = (123) 45-
wholeText = (123) 456-
wholeText = (123) 456-7
したがって、前に数字がない場合、括弧とハイフンは必要ないという問題があります。つまり、4番目の数字を入力すると閉じ括弧が表示され、7番目の数字を入力するとハイフンが表示されます。