Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/448.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
JavaScript中的Substr和explode_Javascript - Fatal编程技术网

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()
有效吗?