我有这样的:SUBSTR和爆炸在JavaScript
var result = "(55.6105023, 12.357556299999942)";
我想去掉括号,我认为你可以用SUBSTR做到这一点(删除字符串中的第一个和最后一个字符)< - 但如果我知道长度,我只能设法删除最后一个字符。
然后我想通过使用爆炸()<把第一个数字55.6105023
为可变lat
和第二12.357556299999942
可变lng
- 但是这并不存在于JS
我怎么能这样做呢?
我有这样的:SUBSTR和爆炸在JavaScript
var result = "(55.6105023, 12.357556299999942)";
我想去掉括号,我认为你可以用SUBSTR做到这一点(删除字符串中的第一个和最后一个字符)< - 但如果我知道长度,我只能设法删除最后一个字符。
然后我想通过使用爆炸()<把第一个数字55.6105023
为可变lat
和第二12.357556299999942
可变lng
- 但是这并不存在于JS
我怎么能这样做呢?
使用substr,replace或slice删除第一个和最后一个字符。使用split将字符串拆分为逗号中的数组。像这样:
var chunks = result.slice(1, -1).split(", ");
var lat = chunks[0].trim();
var lng = chunks[1].trim();
我已经添加了修剪,以确保所有的空格都消失了。
'修剪()'是ECMAScript的5和没有得到普遍支持(这是不支持的IE <9例如)。见https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/String/Trim –
@TimDown:你说得对。感谢您指出了这一点。我讨厌那种东西......修剪是一个常见的功能:s –
您可以使用正则表达式来拉出号:
"(55.6105023, 12.357556299999942)".match(/[\d\.-]+/g);
// returns ["55.6105023", "12.357556299999942"]
正则表达式匹配数字,小数点和减号。
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];
您可以通过使用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
这里另一种方式,所述第一数据到适当的JSON,然后转换成JavaScript数组:
str = str.replace('(', '[').replace(')', ']');
var data = JSON.parse(str),
lat = data[0],
lng = data[1];
切片不会工作,未定义的功能片。 – Karem
@Karem:我从大绿色标记中得知你已经意识到slice()能够工作吗? –