C'est déroutant qu'ils aient inclus un toLocaleString mais pas un analyser méthode. Au moins toLocaleString sans arguments est bien supporté dans IE6+.
Pour un i18n solution, j'ai trouvé ça :
Il faut d'abord détecter le séparateur décimal de la locale de l'utilisateur :
var decimalSeparator = 1.1;
decimalSeparator = decimalSeparator.toLocaleString().substring(1, 2);
Normaliser ensuite le nombre s'il y a plus d'un séparateur décimal dans la chaîne :
var pattern = "([" + decimalSeparator + "])(?=.*\\1)";separator
var formatted = valor.replace(new RegExp(pattern, "g"), "");
Enfin, supprimez tout ce qui n'est pas un chiffre ou un séparateur décimal :
formatted = formatted.replace(new RegExp("[^0-9" + decimalSeparator + "]", "g"), '');
return Number(formatted.replace(decimalSeparator, "."));