
Javascriptで文字列から、任意の文字を抽出したい。
下記のような、グーグルストリートビューの貼り付けコードがあります。
「htp://maps.google.co.jp/maps?f=q&hl=ja&ie=UTF8&om=1&layer=c&ll=35.659406,139.744742
&spn=0,0.019205&z=16&brcurrent=3,0x60188bbd9a93fb75:0x34e0de0018b3269,1
&cbll=35.659362,139.744854&panoid=-o46OC9WbmlXHKjOyLWB8Q
&cbp=12,159.95,,0,-38.84」
※先頭のhttpは、htpにしてあります。
この文字列の中から、
35.659362(2番目に出てくる北緯)
139.744854(2番目に出てくる東経)
159.95
-38.84
の、4つの部分の数字をそれぞれ抽出したいのですが、
Javascriptで可能でしょうか。
各数値の桁数は変わる場合があります。
宜しく、お願いします。
No.3ベストアンサー
- 回答日時:
はりつけるまえですよね、その2
ぜんかくくうはくは、はんかくにしてね。
var getQuery = function (querys) {
var result = { };
var i = 0
var query;
var nv;
querys = querys.split ('&');
while ((query = querys[i++])) {
nv = query.split ('=');
result[ decodeURIComponent (nv[0]) ] = decodeURIComponent (nv[1]);
}
return result;
};
var locationSplit = function (url) {
return /^(([^:/?#]+):)?(\/\/([^/?#]*))?([^?#]*)(\?([^#]*))?(#(.*))?/.exec(url);
};
var str =
'htp://maps.google.co.jp/maps?f=q&hl=ja&ie=UTF8&om=1&layer=c&ll=35.659406,139.744742' +
'&spn=0,0.019205&z=16&brcurrent=3,0x60188bbd9a93fb75:0x34e0de0018b3269,1' +
'&cbll=35.659362,139.744854&panoid=-o46OC9WbmlXHKjOyLWB8Q' +
'&cbp=12,159.95,,0,-38.84';
var val = getQuery (locationSplit (str)[6]);
var cbll = val.cbll.split(',');
var cbp = val.cbp.split(',');
alert ([cbll[0], cbll[1], cbp[1], cbp[4]]);
No.4
- 回答日時:
GitHub にサンプルコードをおきました。
gist: 605899 - GitHub
http://gist.github.com/605899
var uri = 'htp://maps.google.co.jp/maps?f=q&hl=ja&ie=UTF8&om=1&layer=c&ll=35.659406,139.744742&spn=0,0.019205&z=16&brcurrent=3,0x60188bbd9a93fb75:0x34e0de0018b3269,1&cbll=35.659362,139.744854&panoid=-o46OC9WbmlXHKjOyLWB8Q&cbp=12,159.95,,0,-38.84';
var querys = getQuerys(uri);
var targets = querys['ll'].split(',');
alert(targets[0]); // 35.659406
alert(targets[1]); // 139.744742
No.2
- 回答日時:
張り付ける前ですよね、
これで↓
<script type="text/javascript">
<!--
var cbll={lat:"",lng:""};
var cbp={lat:"",lng:""};
var str="htp://maps.google.co.jp/maps?f=q&hl=ja&ie=UTF8&om=1&layer=c&ll=35.659406,139.744742&spn=0,0.019205&z=16&brcurrent=3,0x60188bbd9a93fb75:0x34e0de0018b3269,1&cbll=35.659362,139.744854&panoid=-o46OC9WbmlXHKjOyLWB8Q&cbp=12,159.95,,0,-38.84";
var parm = str.split("&");
for(var i=0;i<parm.length;i++){
if(parm[i].split("=")[0]=="cbll"){
cbll.lat=parm[i].split("=")[1].split(",")[0];
cbll.lng=parm[i].split("=")[1].split(",")[1];
}
if(parm[i].split("=")[0]=="cbp"){
cbp.lat=parm[i].split("=")[1].split(",")[4];
cbp.lng=parm[i].split("=")[1].split(",")[1];
}
}
alert(cbll.lat);
alert(cbll.lng);
alert(cbp.lat);
alert(cbp.lng);
// -->
</script>
No.1
- 回答日時:
よくわかってないけれど・・・
locationから取得するということでよいのかしら?
パラメータの構造を把握していませんが、「cbll」と「cbp」をkeyにしてあとは順番でよいのなら、こんな感じ?
(locationからでない場合は、代わりに初期値として代入)
var i = 0, p, tmp, data = [];
var key1 = "cbll", key2 = "cbp"; // keycode
var srch = location.search.slice(1).split("&");
while (p = srch[i++]) {
p = p.split("=");
if (p[0] == key1 || p[0] == key2) {
tmp = p[1].split(",");
if (p[0] == key1) {
data[0] = tmp[0], data[1] = tmp[1];
} else {
data[2] = tmp[1], data[3] = tmp[4];
}
}
}
alert(data.toString());
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
javascriptで複数キーワード検...
-
JavaScriptで日付を取得したいです
-
C#OpenCv V4にのエラーに関する...
-
【javascript】正規表現で括弧...
-
ジェネレーターの作り方
-
html javascript リンク先アド...
-
ジャバスプリクトについて
-
Boolean型配列中のTrueの有無を...
-
ActiveXobjectが作成できない
-
functionから別のfunctionを実...
-
JavaScriptとHTMLの課題です
-
<a>タグのテキストを取得
-
idを使わずにonclickで自身の要...
-
HTML:Tableタグに対し、JavaScr...
-
VBAでIEのボタンを押してメッセ...
-
画像上のクリックした場所が分...
-
マウスでポイントすると説明を表示
-
jQueryの :not() .not() が有効...
-
javascriptでスロットゲームを...
-
JavaScriptにおける[] とか :...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
C#OpenCv V4にのエラーに関する...
-
C#で、ContextMenuStripに動的...
-
食材の期限を管理するためにGAS...
-
javaScriptのコードの修正をお...
-
メールフォームの日付入力フォ...
-
GASでundefinedエラーが出ます
-
var exports = exports || {}; ...
-
google apps scriptの終了のさせ方
-
JavaScriptでテーブル内?に矢...
-
ジェネレーターの作り方
-
HTMLで作った時報アプリが動き...
-
gas スプレッドシートがアクテ...
-
ASP.NET MVCでObjectをjsに渡す
-
setTimeoutによる繰り返しが途...
-
イラレでナンバリングする方法
-
定積分の近似値を計算する関数c...
-
pdfに丸秘などのスタンプを...
-
【JavaScript】数当てゲームを...
-
シンプルなweb版スタンプラリー...
-
翌月を取得するGASが分かりません
おすすめ情報