Javascript 解析国际数字
我试图弄清楚,如果在浏览器中使用中文(或其他)语言环境,使用中文数字(或其他非拉丁符号集),我的脚本将如何表现。在互联网站上找不到任何关于这个的信息 看这页 当从数字转换为字符串时,我们会看到本地化数字的例子,但反过来又如何呢?我尝试了Javascript 解析国际数字,javascript,internationalization,Javascript,Internationalization,我试图弄清楚,如果在浏览器中使用中文(或其他)语言环境,使用中文数字(或其他非拉丁符号集),我的脚本将如何表现。在互联网站上找不到任何关于这个的信息 看这页 当从数字转换为字符串时,我们会看到本地化数字的例子,但反过来又如何呢?我尝试了parseInt(“一二三")返回了NaN,但我没有使用中文Windows。有人能测试一下吗 我的困惑源于JavaScript具有松散类型的数据,所以如果我最终运行了隐式字符串到数字的转换,比如: var a = "١٢٣"; var b = .01; conso
parseInt(“一二三")返回了NaN
,但我没有使用中文Windows。有人能测试一下吗
我的困惑源于JavaScript具有松散类型的数据,所以如果我最终运行了隐式字符串到数字的转换,比如:
var a = "١٢٣";
var b = .01;
console.log(a*b);
请注意,在一个更复杂的示例中,我的变量a和b可能来自用户输入。如果parseInt和隐式转换不起作用,如何确保来自非拉丁符号的输入在执行算术之前在内部转换为正确的数字表示?它不起作用有几个原因。首先请注意ile有一个toLocalString
,但没有parseLocalStringInt
或fromLocaleString
。其次,javascript只在使用特定运算符时执行隐式类型强制,例如===
*
但是不能以这种方式使用,甚至=
和其他运算符只支持与您所描述的相比,ort的强制非常有限
根据你的观点,这种强迫仍然是非常危险或有用的。
0==false
为true
但是0===false
是false,但它肯定没有你想象的那么强大。我同意-JS语言规范应该提供函数parseLocalStringInt
或fromLocaleString
(或扩展parseInt
)来处理这些i18n场景。与此同时,您需要手动解析一个非拉丁数字字符串并查找正确的字符代码?