【问题标题】:Efficient Replacement of Double-Byte Numerals to Single-Byte Numerals将双字节数字有效替换为单字节数字
【发布时间】:2013-06-09 03:05:17
【问题描述】:

我目前正在开发一个面向日本的网站,默认情况下,他们的键盘使用双字节数字 (\uFF10-\uFF19),这会导致验证问题以及当我们通过数据到其他服务。我正在编写一个函数,在提交之前用单字节(\u0030-\u0039)替换双字节。

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

有什么想法吗?提前致谢!

【问题讨论】:

    标签: regex string replace double-byte


    【解决方案1】:

    这其实只是一个音译问题;你要替换的东西,以及你要替换的东西,都是连续的。所以这会起作用:

    function replaceFullWidthNumerals(s) {
      return s.replace( /[\uFF10-\uFF19]/g,
        function(m){
          return String.fromCharCode( m.charCodeAt() - 0xFEE0 );
        }
      );
    }
    

    【讨论】:

      猜你喜欢
      • 2014-04-29
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-11-11
      • 2019-11-24
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多