在JavaScript中识别(日语)Unicode数字。这能做得更简单吗?

在JavaScript中识别(日语)Unicode数字。这能做得更简单吗?,javascript,regex,unicode,Javascript,Regex,Unicode,我有一个包含多个字段的网页(charset=UTF-8)和一个客户端JavaScript程序。一个特定的输入字段应该包含一个数字,该数字由JavaScript函数处理。这个网页应该是日本人使用的,除了德国人 当日本人使用表单时,他们可能会使用日语输入法输入数据。这意味着,特别是像“1”这样的数字将被输入为“日语数字1”,即unicode字符全宽数字1,即%uFF11。我想把这样一个数字转换成JavaScript中的数值 这就是我走了多远。在本例中,我只关注数字1,因为如果我能处理这一点,我就能处

我有一个包含多个字段的网页(charset=UTF-8)和一个客户端JavaScript程序。一个特定的输入字段应该包含一个数字,该数字由JavaScript函数处理。这个网页应该是日本人使用的,除了德国人

当日本人使用表单时,他们可能会使用日语输入法输入数据。这意味着,特别是像“1”这样的数字将被输入为“日语数字1”,即unicode字符全宽数字1,即%uFF11。我想把这样一个数字转换成JavaScript中的数值

这就是我走了多远。在本例中,我只关注数字1,因为如果我能处理这一点,我就能处理所有数字:

输入字段的内容存储在我的JavaScript变量moneystr中。我的想法是用一个“正常”的数字1替换每一个日语数字1。我发现我可以这样做,例如:

moneystr=moneystr.replace(/\uFF11/g,'1');
这似乎很有效

为了将这个想法扩展到所有数字,我可以写下10个这样的替换语句,或者写一个从0到9的循环,并从循环vaiable计算unicode regexp

然而,这两种解决方案在我看来都是糟糕的编程风格。有没有更简洁的方法?如果我用Perl写这篇文章,我会使用tr操作符,在这里我可以一次性翻译所有内容。JavaScript中也有类似的功能吗?还是应该使用完全不同的方法?

以下是我的解决方案:

我使用了Alex的link()中显示的函数tr(),并使用以下代码来翻译我的字符串:

    moneystr = tr(moneystr, "0123456789 ", "0123456789 ");

可能的重复尝试这个优雅的解决方案:谢谢。这(特别是Perl的tr函数的模拟)解决了我的问题!