4

私は現在、日本向けの Web サイトに取り組んでいます。デフォルトでは、キーボードは 2 バイト数字 (\uFF10-\uFF19) を使用しており、これが検証の問題と、データを他のサービス。送信前に全角を半角(\u0030-\u0039)に置き換える関数を書いています。

現在、私の計画では、ルックアップ テーブルを使用して数値を数値に置き換えようとしていましたが、多数の入力をループする場合、これは非効率的であると感じています。私は、正規表現の達人が思いつくことができる、より効率的な方法であると確信しています。

何か案は?前もって感謝します!

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 に答える