2016-05-22 3 views
0

私はプログラミングがかなり新しいです。 データを受け取ったときに得たリンクから座標を抽出する必要があります。 私はこのようなルックスに興味があるオブジェクト:JavaScriptのリンクから経度/緯度を取得する

event: { 
"type": "message", 
"attachments": [{ 
    "facebookUrl": "https://www.bing.com/maps/default.aspx?v=2&pc=FACEBK&mid=8100&where1=52.217125%2C+5.959805&FORM=FBKPL1&mkt=en-US" 
    }], 
} 

だから、私はevent.attachments[0].facebookUrlに興味がある(これはそれにアクセスする権利表記で?)。座標lat:52.217125とlon:+5.959805を取得する正しいアプローチは何ですか? 問題は、lonが+または - で始まることです。私はどのように正規表現のマッチングを使用してこれを行うにはわからない。

+1

あなたの表記 'event.attachments [0] .facebookUrl'は正しい – duncan

答えて

1

あなたは、URL解析ライブラリを探しています。そこからクエリ文字列を取得し、それを引数文字列ライブラリに渡して引数を渡すことができます。

良いライブラリを見つけることは重要なスキルであり、これらは遍在するライブラリなので、私はそれらにリンクしていません。

+0

ライブラリを使う代わりに正規表現を使ってみましたが、動作しません。 '/([+ - ]?\ d * \?\ d *)%2c([+ - ]?\ d * \?\ d *)\&/ ' – bdbdbd

+1

正規表現は使用しないでください。あなたがURLの構造について行っている仮定の数は狂っています。緯度は長く、常にその順番になるのだろうか?もしズームレベルや標高のような何かが拾い上げるのに似た構造を持っていたらどうしますか?一般的な問題が既に解決されている場合には、kludgeコードを作成する時間を無駄にしないでください。もしそれがノードであれば、 'url.parse(facebookURL、true).query.where1.split( '、')'は '[lat、long]'の配列を取得します。 https://nodejs.org/docs/latest/api/url.html – Russbear

+0

これは魅力的です! – bdbdbd

0

次の正規表現は私のために働きます: /([+-]?\d*\.?\d*)%2c([+-]?\d*\.?\d*)/i[52.217125%2C+5.959805, 52.217125, +5.959805] だから私はちょうどarr[1]arr[2]を使用します。それは私の3つの要素を持つ配列を与える

関連する問題