1

我有以下字符串:(17.591257793993833, 78.88544082641602)在 Javascript

如何对上述字符串使用 split() 以便我可以单独获取数字。

这是我尝试过的(我知道它错了)

var location= "(17.591257793993833, 78.88544082641602)";
var sep= location.split("("" "," "")");    
document.getElementById("TextBox1").value= sep[1];
document.getElementById("Textbox2").value=sep[2];

请提出建议

4

4 回答 4

8

使用正则表达式,像下面这样简单的东西就可以了:

// returns and array with two elements: [17.591257793993833, 78.88544082641602]
"(17.591257793993833, 78.88544082641602)".match(/(\d+\.\d+)/g)
于 2012-09-03T12:25:16.570 回答
1

您可以使用正则表达式。那会对你有很大帮助。与匹配功能一起使用。

一个可能的正则表达式可能是:

/\d+.\d+/g

有关更多信息,您可以从 wiki 开始:http ://en.wikipedia.org/wiki/Regular_expression

于 2012-09-03T12:23:35.430 回答
0

使用正则表达式[0-9]+\.[0-9]+您可以在此处尝试正则表达式。

在javascript中你可以做

var str = "(17.591257793993833, 78.88544082641602)";
str.match(/(\d+\.\d+)/g);

核实。

于 2012-09-03T12:25:44.480 回答
0

如果您希望将值作为数字,即typeof x == "number",您将必须使用正则表达式来获取数字,然后将这些Strings 转换为Numbers,即

var numsStrings = location.match(/(\d+.\d+)/g),
    numbers = [],
    i, len = numsStrings.length;

for (i = 0; i < len; i++) {
    numbers.push(+numsStrings[i]);
}
于 2012-09-03T12:30:22.783 回答