我有这个:
var result = "(55.6105023, 12.357556299999942)";
我想删除括号,我认为你可以使用substr(删除字符串中的第一个和最后一个字符)< - 但是如果我知道长度,我只能设法删除最后一个字符
然后我想通过使用explode()< - 将第一个数字55.6105023
放入变量lat
而第二个12.357556299999942
放入变量lng
JS中不存在
我该怎么做?
答案 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)
使用substr,replace或slice删除第一个和最后一个字符。使用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)
您可以使用字符串操作函数(如split
和slice
)来解析数字(甚至是具有匹配组的正则表达式),以及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)
您可以使用substring
和indexOf
:
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];