2011-04-20 3 views
1

Comment pourrais-je obtenir les chiffres de cette chaîne: '(31.5393701, -82.46235569999999)'Javascript match de

Je suis déjà essayer quelque chose, mais cela est loin de la solution :)

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

Répondre

3

Essayez string.split

par exemple:

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

Exemple de travail: http://jsfiddle.net/AL3e4/

+0

+1 semble être la plus propre un – kapa

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

Que diriez-vous ceci:

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

Vous êtes assez proche, mais il manque le signe, les chiffres décimaux et des espaces. Si vous avez besoin de saisir que d'une chaîne, essayez ceci:

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

Essayez quelque chose comme ça

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