为什么 jQuery 插件 Globalize 可以识别英语语言环境 (en-CA) 中的 9,999.99 而不能识别法语本地环境中的 9 999,99?
Why does the jQuery plugin Globalize reconize 9,999.99 in English local (en-CA) but not 9 999,99 in French local?
为什么 Globalize 9,999.99
在英语本地 (en-CA) 而不是 9 999,99
在法语本地 (fr-CA) 中。 space 是否导致了这种情况下的问题?
当我调用 numberParser 方法时会发生这种情况。如果我输入 9 999,99
则返回 NaN,但应该接受,因为格式化程序 returns that.
开箱即用的简短回答:因为当前的 Globalize 缺少名为 "Loose Matching" https://github.com/jquery/globalize/issues/292.
的解析器功能
简短的具体答案:因为 space 和 no-break space 是两个不同的字符。 fr-CA 分组分隔符的 "space" 不是常规的 space(字节码 32 = 十六进制 20),而是一个不间断的 space(字节码 160 = 十六进制 A0)。尝试 "sanitizing" 使用 input.replace( "\x20", "\xa0" )
输入,然后再将其作为解决方法提供给解析器。
您可以在 https://github.com/jquery/globalize/issues/288
找到详细信息
希望对您有所帮助:)
为什么 Globalize 9,999.99
在英语本地 (en-CA) 而不是 9 999,99
在法语本地 (fr-CA) 中。 space 是否导致了这种情况下的问题?
当我调用 numberParser 方法时会发生这种情况。如果我输入 9 999,99
则返回 NaN,但应该接受,因为格式化程序 returns that.
开箱即用的简短回答:因为当前的 Globalize 缺少名为 "Loose Matching" https://github.com/jquery/globalize/issues/292.
的解析器功能简短的具体答案:因为 space 和 no-break space 是两个不同的字符。 fr-CA 分组分隔符的 "space" 不是常规的 space(字节码 32 = 十六进制 20),而是一个不间断的 space(字节码 160 = 十六进制 A0)。尝试 "sanitizing" 使用 input.replace( "\x20", "\xa0" )
输入,然后再将其作为解决方法提供给解析器。
您可以在 https://github.com/jquery/globalize/issues/288
找到详细信息希望对您有所帮助:)