JavaScript中的Substr和explode
我有这个:JavaScript中的Substr和explode,javascript,Javascript,我有这个: var result = "(55.6105023, 12.357556299999942)"; 我想删除括号,我想您可以使用substr(删除字符串中的第一个和最后一个字符)使用或删除第一个和最后一个字符。用于将字符串拆分为逗号上的数组。像这样: var chunks = result.slice(1, -1).split(", "); var lat = chunks[0].trim(); var lng = chunks[1].trim(); 我添加了修剪以确保所有空白都
var result = "(55.6105023, 12.357556299999942)";
我想删除括号,我想您可以使用substr(删除字符串中的第一个和最后一个字符)使用或删除第一个和最后一个字符。用于将字符串拆分为逗号上的数组。像这样:
var chunks = result.slice(1, -1).split(", ");
var lat = chunks[0].trim();
var lng = chunks[1].trim();
我添加了修剪以确保所有空白都消失。使用,它可以采用负索引,与substr()不同。
是标准化的,适用于所有浏览器:
result.slice(1, -1);
可用于其他部件:
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];
可以使用正则表达式提取数字:
"(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];
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
您可以使用
子字符串
和索引
:
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];
trim()
是ECMAScript 5,不受普遍支持(例如,不受支持的IE<9)。看@TimDown:你是对的。谢谢你指出这一点。我讨厌这样的事情…修剪是一个很常见的功能:s@Karem:我假设从绿色的大勾号中,您意识到slice()
有效吗?