問題タブ [nsdatadetector]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
1 に答える
183 参照

objective-c - NSDataDetector - 時間のみを解析するときにタイムゾーンをシフトする (mm/dd/yyyy なし)

NSDataDetector を使用してテキストから時間を取得しているときに何かに気づきましたが、何が起こっているのかわかりません。私の状況では、私が持っている唯一の情報は時間です-余分な日/月/年の日付情報はありません。テキストの文字列に埋め込まれている可能性のある「11:30」など、日付の時刻部分のみ。

文字列から日付情報を抽出するサンプル関数:

次に、検出器に時間文字列を投げる簡単なテスト関数を用意します。

私が期待するのは、7:30、8:30、9:30 などの時間情報です。または、それが失敗した場合は、少なくともある程度一貫した時間 (同じタイムゾーン内) です。

しかし、システムクロックによって得られるものは異なります。そして、私はその理由やそれについて何をすべきかを理解していません。私の推測では、検出された日付の日付部分がない場合、日付は現在の UTC 日付に設定されていますが、日付/時刻が結果をシフトする理由がわかりません。日付はシステム クロック時間に基づいてシフトされているようですが、すべてではありません。

システム クロック時刻を06:01AM07:01AM、または08:01AMに設定した場合 (すべて同じ結果) 時刻が一貫して推測されるように見えるため、これらは「正しく」見えます。


  • 元の:07:30 got_date:2016-06-18 12:30:00 +0000 Formatted_time:07:30
  • オリジナル:8:30 got_date:2016-06-18 13:30:00 +0000formatted_time:08:30
  • オリジナル:9:30 got_date:2016-06-18 14:30:00 +0000formatted_time:09:30
  • オリジナル:10:30 got_date:2016-06-18 15:30:00 +0000 Formatted_time:10:30
  • オリジナル:11:30 got_date:2016-06-18 16:30:00 +0000 Formatted_time:11:30

システム クロック時間: 09:01AM US Central 8:30 日付がシフトされます (ただし、7:30、9:30、10:30、または 11:30 ではありません)。


  • 元の:07:30 got_date:2016-06-17 12:30:00 +0000 Formatted_time:07:30
  • 元の:8:30 got_date: 2016-06-18 01:30:00 +0000 Formatted_time : 20:30
  • オリジナル:9:30 got_date:2016-06-17 14:30:00 +0000formatted_time:09:30
  • オリジナル:10:30 got_date:2016-06-17 15:30:00 +0000 Formatted_time:10:30
  • オリジナル:11:30 got_date:2016-06-17 16:30:00 +0000 Formatted_time:11:30

システム クロック時間: 10:01AM US Central (現在、8:30 と 9:30 はシフトされていますが、その他はシフトされていません)


  • 元の:07:30 got_date:2016-06-17 12:30:00 +0000 Formatted_time:07:30
  • 元の:8:30 got_date: 2016-06-18 01:30:00 +0000 Formatted_time : 20:30
  • 元の:9:30 got_date: 2016-06-18 02:30:00 +0000 Formatted_time : 21:30
  • オリジナル:10:30 got_date:2016-06-17 15:30:00 +0000 Formatted_time:10:30
  • オリジナル:11:30 got_date:2016-06-17 16:30:00 +0000 Formatted_time:11:30

システム クロック時間: 11:01AM 米国中部(など...)


  • 元の:07:30 got_date:2016-06-17 12:30:00 +0000 Formatted_time:07:30
  • 元の:8:30 got_date: 2016-06-18 01:30:00 +0000 Formatted_time : 20:30
  • 元の:9:30 got_date: 2016-06-18 02:30:00 +0000 Formatted_time : 21:30
  • 元の:10:30 got_date: 2016-06-18 03:30:00 +0000 Formatted_time : 22:30
  • オリジナル:11:30 got_date:2016-06-17 16:30:00 +0000 Formatted_time:11:30

私の仮定では、日付の処理と日付の抽出に関する基本的なことを理解していないだけですが、検出された日付のサブセットのみがシステムクロック時間に基づいてシフトするのは本当に奇妙に思えます。

なぜこれが起こっているのかについての手がかりをいただければ幸いです。

0 投票する
1 に答える
1015 参照

java - 文字列からアドレスを抽出 - iOS の NSDataDetector に相当

iOSにNSDataDetectorは、たとえば、テキストを渡すと、そのテキストに住所、日付、リンクなどが含まれているかどうかを検出するという名前のクラスがあります...

私の場合、テキスト内のアドレスを検出できる Android 用の同様のツールを見つけることに興味があります。で遊んでみましたGeocoderが、アドレスが既にわかっている場合にのみ機能します。そうでなければ、目的を果たせません。

私が探しているものの例は次のとおりです。

与えられ This is just a sample text that contains a nice address: 123 W Main St, Imaginary City, IC, 12345 た: ツールはちょうど返されます123 W Main St, Imaginary City, IC, 12345

アドレスの形式が異なる場合があることに注意してください。

前もって感謝します!

0 投票する
1 に答える
353 参照

objective-c - UITextView に URL (ブール値) または抽出 URL があるかどうかを確認する

textView.dataDetectorTypes = UIDataDetectorTypeLink;リンクを自動検出できることは承知しています。

UITextViewこれは簡単に思えますが、の dataDetector が実際に一致を見つけたかどうかを確認する方法が見つかりません。

BOOL hasLink = textView.hasLink;のようなもの、またはBOOL hasLink = textView.text.hasLink;参照をプルする方法を探していますNSDataDetector(おそらくNSDataDetectorメソッドを使用して確認できますが、アイデアを捨てるだけで確認する必要があります)

これを確認する組み込みの方法はありませんか、それとも個別に確認する必要がありますか?

編集:

それで、私はこれを行うために自分自身NSDataDetectorを使用しました(以下のコード)が、検出されたデータ型を抽出する方法や、検出されたデータ型の存在を確認する方法が本当にないのかという疑問が残りUITextViewます。

これは私が自分自身をチェックするために使用したものです:

0 投票する
2 に答える
5089 参照

ios - Swift 3.0 で NSDataDetector を使用して文字列から住所要素を抽出する

NSDataDetector文字列からアドレスを使用しようとしています。NSHipster の記事NSDataDetectorApple の NSDataDetector のドキュメントを見てきました。文字列からアドレスを引き出すところまで、次の方法があります。

住所全体ではなく、住所の要素を抜き出したい。Data Detector の一致タイプセクションのNSHipsterNSDataDetector投稿では、 、、などのアドレス コンポーネントが表示されます。の初期化でこれらのキーを使用できません。NSTextCheckingCityKeyNSTextCheckingStateKeyNSTextCheckingZIPKeyNSDataDetector

私は GitHub を掘り下げて、盗用する例を見つけることができるかどうかを確認しましたが、見つけることができるのは、Objective-C コードまたはマスター Swift リポジトリの宣言型のものだけです。

住所の個々のコンポーネントを引き出すことができると 99% 確信していますが、それを理解するにはあまりにも愚かです。読んでくれてありがとう。提案を歓迎します。

0 投票する
1 に答える
1261 参照

ios - UITextView の Data Detectors オプションとテキストの外観

UITextView は、以下をサポートする非常に便利な Data Detectors 機能を提供します。

  • 電話番号の検出
  • URL 検出 番地検出
  • イベント検出
  • 出荷追跡番号の検出
  • フライト番号の検出、および
  • ユーザーが調べたい情報

テスト用に小さなサンプルを用意しましたが、質問が 1 つだけあります。

検出されたテキストの外観を変更するにはどうすればよいですか?

tintColorおよび/またはに適用された変更はlinkTextAttributes、URL、電子メール、および電話番号に対してのみ機能するように見えます。UITextViewに適用された変更tintColorまたはプロパティは、イベント/日付または時刻、住所、出荷番号、フライト番号などの項目には影響を与えないようです。linkTextAttributes

UITextView の Data Detectors オプションのサンプル