Substr并在JavaScript中爆炸

时间:2011-10-26 14:38:07

标签: javascript

我有这个:

var result = "(55.6105023, 12.357556299999942)";

我想删除括号,我认为你可以使用substr(删除字符串中的第一个和最后一个字符)< - 但是如果我知道长度,我只能设法删除最后一个字符

然后我想通过使用explode()< - 将第一个数字55.6105023放入变量lat而第二个12.357556299999942放入变量lng JS中不存在

我该怎么做?

7 个答案:

答案 0 :(得分:2)

使用slice(),它可以采用负数指数而不像substr()标准化,适用于所有浏览器:

result.slice(1, -1);

您可以将split()用于其他部分:

var parts = result.slice(1, -1).split(", ");
var lat = parts[0], lng = parts[1];

或者你可以使用正则表达式:

var res = /^\(([\d.]+),\s*([\d.]+)\)$/.exec(result);
var lat = res[1], lng = res[2];

答案 1 :(得分:0)

使用substrreplaceslice删除第一个和最后一个字符。使用split将字符串拆分为逗号上的数组。像这样:

var chunks = result.slice(1, -1).split(", "); 
var lat = chunks[0].trim();
var lng = chunks[1].trim();

我添加了修剪以确保所有空格都消失了。

答案 2 :(得分:0)

您可以使用正则表达式来提取数字:

"(55.6105023, 12.357556299999942)".match(/[\d\.-]+/g);
// returns ["55.6105023", "12.357556299999942"]

正则表达式将匹配数字,小数点和减号。

答案 3 :(得分:0)

var result = "(55.6105023, 12.357556299999942)"; 
var substring = result.substring(1, result.length - 1);
var coordinates = substring.split(",");
var lat = coordinates[0];
var lng = coordinates[1];

答案 4 :(得分:0)

您可以使用字符串操作函数(如splitslice)来解析数字(甚至是具有匹配组的正则表达式),以及Number构造函数来解析数字来自一个字符串:

var parseResult = function(s) {
  var ss = s.split(', ');
  return [Number(ss[0].slice(1)), Number(ss[1].slice(0, -1))];
};

var x = parseResult('(55.6105023, 12.357556299999942)');
x[0]; // => 55.6105023
x[1]; // => 12.357556299999942

答案 5 :(得分:0)

您可以使用substringindexOf

来完成此操作
var result = "(55.6105023, 12.357556299999942)";
var lat = result.substring(result.indexOf('(')+1, result.indexOf(','));
var lon = result.substring(result.indexOf(', ')+1, result.indexOf(')'));

alert(lat); // alerts 55.6105023
alert(lon); // alerts 12.357556299999942

答案 6 :(得分:0)

这是另一种方法,首先将数据转换为适当的JSON,然后转换为JavaScript数组:

str = str.replace('(', '[').replace(')', ']');
var data = JSON.parse(str),
    lat = data[0],
    lng = data[1];