Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/368.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 解析国际数字_Javascript_Internationalization - Fatal编程技术网

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场景。与此同时,您需要手动解析一个非拉丁数字字符串并查找正确的字符代码?