Globalize.js 十进制数字验证的错误值

Posted

技术标签:

【中文标题】Globalize.js 十进制数字验证的错误值【英文标题】:wrong values with Globalize.js decimal number validation 【发布时间】:2014-05-22 08:12:53 【问题描述】:

我正在尝试使用 jquery 的 globalize.js 插件验证我的 asp.net mvc5 应用程序上的一些数字...

当我输入带有, 作为小数点分隔符的数字时,一切正常。 当我使用. 输入它时,数字通过验证,但这是错误的,应该抛出错误。我检查了 jquery 中发生了什么,发现用于检查数字的行

var val = Globalize.parseFloat(value);

返回错误的值。当我通过1,25 时,结果是1.25。当我通过1.25 时,返回值为125,而不是错误...

我已经声明了

  Globalize.culture('sr-Latn-RS');

在我的 javascript

<globalization culture="sr-Latn-RS" uiCulture="sr-Latn-RS" />

在 web.config 中。

有什么解决方法吗?

【问题讨论】:

你在说这个插件github.com/jquery/globalize 吗? 我不确定是不是这个,我从 nuget 获得了插件,遵循此页面上的说明icanmakethiswork.blogspot.com/2012/09/… 【参考方案1】:

经过几天的探索,我终于在 jquery.globalize 插件的 ParseFloat 函数的“Handle Groups”部分找到了它。

integer = integer.split( groupSep ).join( "" );

行应替换为

integer = integer.split(groupSep).join(nf["."]);

【讨论】:

以上是关于Globalize.js 十进制数字验证的错误值的主要内容,如果未能解决你的问题,请参考以下文章

数字货币因何值十万一枚

在 JavaScript 中验证十进制数字 - IsNumeric()

使用 jquery 验证器插件仅为 2 个十进制数字 + 点 + 逗号设置正则表达式

如何用五千块的电脑弹奏出价值十万钢琴的效果

如何用五千块的电脑弹奏出价值十万钢琴的效果

如何用五千块的电脑弹奏出价值十万钢琴的效果