Substr and explode in JavaScript

Substr and explode in JavaScript

本文关键字:JavaScript in explode and Substr      更新时间:2023-09-26

我有这个:

var result = "(55.6105023, 12.357556299999942)";

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

然后我想把第一个数字55.6105023到变量lat和第二个12.357556299999942到变量lng使用explosion () <-但这在JS中不存在

我该怎么做?

使用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];

通过substr、replace或slice删除第一个和最后一个字符。使用split将字符串分割成逗号上的数组。像这样:

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

我已经添加了修剪,以确保所有的空白都消失了

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

"(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];

您可以使用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

您可以使用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

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

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