1

我正在使用jQuery Globalize插件和 jQuery 验证。

对于有效的瑞典数字5.000,00parseFloat 函数给出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>
4

2 回答 2

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"
    }
},
于 2013-04-19T09:51:10.693 回答
0

瑞典实际上使用空格作为千​​位分隔符。不过,我找不到一个很好的参考。(我是瑞典人,1 000 000,123 在我看来比 1.000.000,123 好)

下面的 .NET C# 代码接缝来确认它。

Console.WriteLine(String.Format("'{0}'", System.Globalization.CultureInfo.GetCultureInfo("sv-SE").NumberFormat.NumberGroupSeparator));

此外,如果您转到“区域和语言”,然后在 Windows 中转到“其他设置”并选择瑞典语(瑞典),它会将数字分组符号显示为空格。

和甲骨文接缝同意: http ://docs.oracle.com/cd/E19455-01/806-0169/overview-9/index.html

于 2013-12-16T12:23:28.750 回答