2011-04-20 118 views
1

怎麼能我得到這個字符串的數字:'(31.5393701, -82.46235569999999)'的Javascript比賽

我已經嘗試一些,但是這是遠離解:)

text.match(/\((\d+),(\d+)\)/); 

回答

3

嘗試string.split

e.g:

var nums = text.replace(/[^0-9-,.+]/, "").split(","); 
var num1 = parseFloat(nums[0]); 
var num2 = parseFloat(nums[1]); 

工作實例:http://jsfiddle.net/AL3e4/

+0

+1似乎是最乾淨的一個 – kapa 2011-04-20 20:52:35

1
var text = '(31.5393701, -82.46235569999999)'; 
var matches = text.replace('(', '').replace(')', '').split(','); 
if (matches.length > 1) { 
    var lat = Number(matches[0]); 
    var lon = Number(matches[1]); 
    alert(lat + ' ' + lon); 
} 
0

如何:

text.replace("(","").replace(")").replace(" ").split(","); 
0

你是相當接近,但缺少的符號,十進制數字和一些空間。如果您需要捕獲從一個字符串,試試這個:

/\(([+-]?\d+(?:\.\d+)?)\s*,\s*([+-]?\d+(?:\.\d+)?)\)/ 
0

嘗試是這樣的

text.match(/\(([\d.-]+),\s+([\d.-]+)\)/); 
0
"(31.5393701, -82.46235569999999)".replace(/\(|\)/g, '').split(', ');