はじめに
業務で濁音・半濁音の文字を清音に変換する処理が必要となりました。
normalize()メソッドを使用すると簡単に清音を取得できることが分かりました。
例1
var str = 'ペンギン';
console.log(str + ' = ' + str.length + '文字');
// 正規化する
str = str.normalize('NFD');
console.log(str + ' = ' + str.length + '文字');
// expected output: ペンギン = 4文字
// ペンギン = 6文字
6文字??
// ペンギン = 6文字 の内訳。
for (var i = 0; i < str.length; i++) {
console.log(str[i]);
}
// expected output: ヘ
// ゚
// ン
// キ
// ゙
// ン
簡単に濁点・半濁点を外した文字を取得することができました。
簡単な説明
normalize() メソッドは、文字列の Unicode 正規化形式を返します。
今回は、NFDを引数に渡し、「ぺ」から「へ」などを抽出しています。
※NFD・・・正準等価な文字については、結合文字に分解した形で正規化する。
詳しく知りたい方は参照にある記事を読み理解を深めてみてください。
注意
String.prototype.normalize()はES6で加わったメソッドなので、IE11では使用できません。