在javascript中拆分字符串不起作用

时间:2014-07-16 08:19:44

标签: javascript regex

我有一个函数,我动态获取一些值,然后将它们发送到其他函数。

function sample(){
//some code here
var latlong1=//some value;
var latlong2=//some value;
fnSplitString(latlong1,latlong2);
}

我将这些值发送给函数说

function fnSplitString(l1,l2)
{
alert("Latlong1::::"+l1);
alert("LatLong2::::"+l2);
var splitStringLatLong=l1.split(",");
alert("split1"+splitStringLatLong[0]);
alert("split2"+splitStringLatLong[1]);
}

这里我的' l1'和' l2'正在警告这些值。

Latlong1::::lat=78.23456,long=26.56789
Latlong2::::lat=74.57585,long=22.67890

我想只从这两个字符串中提取数值。因此我尝试将它分开直到逗号。但这种分裂根本不起作用。我没有得到任何警告信息。哪里出错了?如何从字符串中仅提取数字?

3 个答案:

答案 0 :(得分:0)

fnSplitString定义的第一行末尾有一个额外的分号。

尝试删除它,看看它是否有效。更正了以下代码。

function fnSplitString(l1,l2) 
{
   alert("Latlong1::::"+l1);
   alert("LatLong2::::"+l2);
   var splitStringLatLong=l1.split(",");
   alert("split1"+splitStringLatLong[0]);
   alert("split2"+splitStringLatLong[1]);
}

答案 1 :(得分:0)

这不是最佳解决方案,但这有效:

var temp  = 'lat=78.23456,long=26.56789';
var lat =   temp.substring(4, temp.indexOf(",long"));
var long =  temp.substring(temp.indexOf("g")+2, temp.length);
alert(lat);
alert(long);

答案 2 :(得分:0)

我认为正则表达式是最简单的解决方案。

我在这方面不是很强,但是这里有:

var str = "lat=78.23456,long=26.56789";
var s = str.match(/(?:\d*\.)?\d+/g);
alert("string1: "+s[0]+", string2: "+s[1]);

结果是一个字符串数组,但您可以将其转换为您想要的任何字符串。