1

緯度と経度に別々に解析する必要があるデータベースから文字列を抽出しています。文字列は、次の形式で「ポイント」として定義されています。

(2.340000000,-4.50000000)

括弧を削除しようとしていますが、メソッドを使用してそれらを解析しましたsplit()が、正しく機能する正規表現を思い付くことができませんでした。

これまで私は多くの選択肢を試しました、そして

var latlong = "(2.34000000, -4.500000000)"
latlong.replace('/[\(\)]//g','');
var coords = latlong.split(',');
var lat = coords[0];
var long = coords[1];

私がそれを実行した場合、私が得たのは次のとおりです。 NaN, -4.500000

私は何が間違っているのですか?ありがとう!

4

4 に答える 4

3

動作しているようですが、余分なスラッシュがありました

var value = '(2.340000000,-4.50000000)';

//you had an extra slash here
//           ''''''''''''''''v
value = value.replace(/[\(\)]/g,'').split(',');

console.log(value[0]);
console.log(value[1]);​
于 2012-05-10T08:41:22.313 に答える
0
 var latlong = "(2.34000000, -4.500000000)"
 var coords = latlong.replace(/[\(\) ]/g,'').split(',');

 console.log(coords[0])
 console.log(coords[1])
于 2012-05-10T08:58:35.843 に答える
0

あなたは関数を使用することを試みることができmathます:

var latlong = "(2.34000000, -4.500000000)"
var coords = latlong.match(/\((-?[0-9\.]+), (-?[0-9\.]+)\)/);

var lat = coords[1];
var long = coords[2];
alert('lat: ' + lat);
alert('long: ' + long);
于 2012-05-10T08:44:27.610 に答える
0

分割を切り取って\((\-?\d+\.\d+), (\-?\d+\.\d+)\)、2つの座標を返す正規表現でmatch関数を使用することができます。Firebugコンソールの出力:

>>> "(2.34000000, -4.500000000)".match(/\((\-?\d+\.\d+), (\-?\d+\.\d+)\)/);
["(2.34000000, -4.500000000)", "2.34000000", "-4.500000000"]
于 2012-05-10T08:39:37.700 に答える