jquery使用parseFloat验证全局化问题

Pet*_*ter 6 globalization validation asp.net-mvc jquery

我正在尝试使用jquery全球化插件(https://github.com/jquery/globalize)来处理asp.net mvc3客户端不显眼的验证.我已经加入了en-CA和fr-CA文化,并且看到插件接受的有效数字与服务端验证接受的内容之间存在一些差异.下面是一些调用Globalize.parseFloat方法的示例,其中包含两种文化的不同输入以及我要解决的问题(粗体表示服务器端验证不验证数字)fr-CA

  • Globalize.parseFloat("7.12",10,"fr-CA")返回7.12
  • Globalize.parseFloat("7..12",10,"fr-CA")返回NaN
  • Globalize.parseFloat("7,12",10,"fr-CA")返回7.12
  • Globalize.parseFloat("7,,12",10,"fr-CA")返回NaN
  • Globalize.parseFloat("7 1 2,12",10,"fr-CA")返回712.12

EN-CA

  • Globalize.parseFloat("7.12",10,"en-CA")返回7.12
  • Globalize.parseFloat("7..12",10,"en-CA")返回NaN
  • Globalize.parseFloat("7,12",10,"en-CA")返回712
  • Globalize.parseFloat("7,,12",10,"en-CA")返回712
  • Globalize.parseFloat("7,,1,2.12",10,"en-CA")返回712.12

单步执行parseFloat代码看起来这是预期的输出,但我无法看到这是如何预期的,所以我希望我遗漏了一些东西......或者这是打算?

谢谢

Pet*_*ter 1

看起来这是全球化插件中的一个已知问题(请参阅https://github.com/jquery/globalize/issues/46)。看起来我必须运行自己的正则表达式,以确保它采用正确的格式进行客户端验证(好消息是我目前只需要处理两种语言:)