防止格式输入中的双字节数字

时间:2018-09-19 21:52:50

标签: javascript cjk

在普通javascript中执行此操作。当我在html输入中输入带有两字节字符的数字时,我在数学上出错了,因为我们正在使用javascript在屏幕上进行操作,结果是“ NaN”。

在幕后,我将输入值(一个数字)并乘以价格乘以得出总计。现在,总数为NaN,带有两个字节数。一个字节的数字对数学很好。

有没有一种方法可以防止在javascript中输入两个字节的字符和字母?

两个字节:1234567 一个字节:123456

所有这些都使用日语来获取两个字节数。

1 个答案:

答案 0 :(得分:0)

您可以通过type =“ number”来“阻止” HTML5格式的全角数字,但这可能不是最佳解决方案。有些用户可能不明白为什么他们的全角数字被拒绝。

相反,您可以在接收后将它们转换为半角数字。只是减去两个字符代码的差。

const original = '120444284'
const converted = original.replace(/[0-9]/g, function (s) {
  return String.fromCharCode(s.charCodeAt(0) - 0xFEE0);
})
document.writeln(converted)

输出

120444284