全角文字やよく似た文字を正規化する
JavaScript でアプリを作るとき、入力文字の正規化を行って利用者の負担を減らそう。
全角文字
Unicode の Halfwidth and Fullwidth Forms Block のうち、ASCII コードと対応している 94 の文字を置換する。
str.replace(/[!-〜]/g, function(s) { return String.fromCharCode(s.charCodeAt(0) - 0xFEE0); });
ハイフンと似た文字
str.replace(/[\u2212\uff0d\u30fc\u2012\u2013\u2014\u2015\u2500]/g, "-");
空白文字
Unicode 空白文字等調査より。タブ、改行は除いてある。
str.replace(/[\u200B\u200C\u200D\uFEFF\u2028\u2029\u00A0\u1680\u180E\u2000\u2001\u2002\u2003\u2004\u2005\u2006\u2007\u2008\u2009\u200A\u202F\u205F\u3000]/g, " ");