parseFloat дает NaN для шведской культуры
Я использую плагин jQuery Globalize вместе с валидацией jQuery.
Для действительного шведского номера 5.000,00
Функция parseFloat дает NaN
В чем может быть ошибка в приведенном ниже коде / библиотеке?
<script type="text/javascript" src="/Scripts/jquery-1.9.0.min.js"></script>
<script type="text/javascript" src="/Scripts/globalize.js"></script>
<script type="text/javascript" src="/Scripts/cultures/globalize.culture.sv.js"></script>
<script type="text/javascript" src="/Scripts/jquery.validate.js"></script>
<script type="text/javascript" src="/Scripts/jquery.validate.unobtrusive.js" ></script>
<script type="text/javascript">
jQuery(function () {
Globalize.culture('sv');
$.validator.methods.number = function (value, element) {
if (Globalize.parseFloat(value)) { // this gives NaN
return true;
}
return false;
}
});
</script>
2 ответа
Я думаю, что вы используете неправильную культуру. Или ваш введенный номер просто в неправильном формате. http://jsfiddle.net/98sgm/1/
jQuery(function () {
Globalize.culture('sv');
alert(Globalize.parseFloat('5.000,00'));
alert(Globalize.parseFloat('5,000.00'));
});
И исходный код из файла культуры:
numberFormat: {
",": " ",
".": ",",
negativeInfinity: "-INF",
positiveInfinity: "INF",
percent: {
",": " ",
".": ","
},
currency: {
pattern: ["-n $","n $"],
",": ".",
".": ",",
symbol: "kr"
}
},
РЕДАКТИРОВАТЬ: создать новый файл культуры и установить следующие параметры numberFormat:
numberFormat: {
",": ".",
".": ",",
negativeInfinity: "-INF",
positiveInfinity: "INF",
percent: {
",": " ",
".": ","
},
currency: {
pattern: ["-n $","n $"],
",": ".",
".": ",",
symbol: "kr"
}
},
Швеция фактически использует пространство как разделитель тысяч. Я не могу найти действительно хорошую ссылку для этого все же. (Я шведка и 1 000 000 123 выглядит лучше, чем 1 000 000 123)
следующий шов.NET C# Code подтверждает это.
Console.WriteLine(String.Format("'{0}'", System.Globalization.CultureInfo.GetCultureInfo("sv-SE").NumberFormat.NumberGroupSeparator));
Также, если вы выберете "Регион и язык", а затем "Дополнительные настройки" в окнах и выберете "Шведский (Швеция)", в качестве пробела будет показан символ группировки цифр.
И оракулу швы договориться: http://docs.oracle.com/cd/E19455-01/806-0169/overview-9/index.html