しかしUITextFieldはユーザーが入力可能な要素なので、入っているのは"緯度,経度"じゃないかもしれないし、余分なものが含まれる可能性もある。
ということで、正規表現で軽くチェックしてマッチした部分を使うことにした。
そのためのメソッドはNSString:rangeOfString:options:で、optionsにはNSRegularExpressionSearchを渡すのがポイント。
検索文字列は@"3[0-9]{1}.[0-9]+,13[0-9]{1}.[0-9]+"という正規表現になっていて
"34.6937378, 135.5021651"のような文字列にマッチする。
rangeOfString:options:を使うとマッチした範囲がNSRangeで返されるので、
そのNSRangeをそのままNSString:substringWithRange:に渡して、マッチした部分を返してもらえる。
これは便利!
NSRange range = [textField.text rangeOfString:@"3[0-9]{1}.[0-9]+,13[0-9]{1}.[0-9]+" options:NSRegularExpressionSearch];
if (range.location != NSNotFound) {
NSString *locStr = [startTF.text substringWithRange:range];
//(.....以下省略.....)
}
0 件のコメント:
コメントを投稿