解析国际数字
parsing international numerals
本文关键字:数字 更新时间:2023-09-26
我正试图弄清楚,如果在使用中文(或其他)区域设置的浏览器中使用中文数字(或其他非拉丁符号集)渲染脚本,脚本会如何表现。在互联网上似乎找不到任何关于这方面的信息。
查看页面https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Number/toLocaleString当从数字转换为字符串时,我们看到了本地化数字的例子,但反过来呢?我在IE11调试控制台中尝试了parseInt("一二三")
,它返回了NaN
,但我没有使用中文Windows。有人能测试一下吗?
我的困惑来自于JavaScript有松散类型的数据,所以如果我最终遇到了一个隐式的字符串到数字的转换,比如:
var a = "١٢٣";
var b = .01;
console.log(a*b);
请注意,在一个更复杂的例子中,我的变量a和b可能来自用户输入。如果parseInt和隐式转换不起作用,在进行算术之前,如何确保来自非拉丁符号的输入在内部转换为正确的数字表示?
由于多种原因,它无法工作。首先注意,虽然存在toLocalString
,但不存在parseLocalStringInt
或fromLocaleString
。其次,javascript只有在使用特定运算符(例如==
)时才真正执行隐式类型强制。然而,*
不能以这种方式使用,与您所描述的相比,即使==
和其他运算符也只支持非常有限的强制。
这种胁迫仍然可能非常危险或有用,这取决于你的观点。0 == false
为真但0 === false
是假的,但它肯定没有你想象的那么强大。
相关文章:
- 通过单击表单中的按钮,在代码生成中使用javascript生成字母数字代码
- 测试索引值是否等于某个数字的倍数
- 将数字转换为一定数量的硬币
- 键入最后一位数字后自动提交
- 如何在javascript中迭代数字列表
- Javascript逻辑运算符和字符串/数字
- 如何在javascript中获得与特定数字相等的随机数
- 如果元素's的ID以数字开头
- 递增一个数字而不去掉前导零
- 如何使用JavaScript查找1和N之间的所有数字的总和
- 如何在这里将两个值最低的数字相加
- 如何删除除冒号、数字和'上午'或者'下午'
- 如何为jQuery屏蔽输入插件创建一个允许字母数字、空格和重音字符的掩码
- Javascript排序字符串或数字
- 我想在AngularJS应用程序中创建一个输入数字框,用户不应该在该框上键入十进制数字.(一个整数输入框)
- 将数字四舍五入到小数点后两位
- 我如何在数字插入中使用逗号,这样它就不会'不要破坏我的输入字段
- 正则表达式与数字中的第二个点匹配
- 制作一个regex来验证只有一个数字的字符串
- 分开的数字和字母