4

我目前正在开发一个面向日本的网站,默认情况下,他们的键盘使用双字节数字 (\uFF10-\uFF19),当我们将数据传递到其他服务。我正在编写一个函数,在提交之前用单字节 (\u0030-\u0039) 替换双字节。

目前,我的计划是使用查找表并将数字换成数字,但在循环十几个输入时感觉效率低下。我相信他们是你们中的一个 RegEx 大师可以想出的一种更有效的方法。

有任何想法吗?提前致谢!

4

1 回答 1

3

这实际上只是一个音译问题;并且您要替换的内容以及要替换的内容都是连续的。所以这将起作用:

function replaceFullWidthNumerals(s) {
  return s.replace( /[\uFF10-\uFF19]/g,
    function(m){
      return String.fromCharCode( m.charCodeAt() - 0xFEE0 );
    }
  );
}
于 2013-06-12T20:48:28.497 回答