toZenkakuKatakana method
Converts half-width katakana to full-width katakana.
半角カタカナを全角カタカナに変換します。
final text = "アイウエオ";
final converted = text.toZenkakuKatakana(); // "アイウエオ"
Implementation
String toZenkakuKatakana() {
var val = this;
val = val.replaceAllMapped(RegExp("[ウカ-トハ-ホ]゙"), (Match m) {
var dakuten = <String, String>{
"ヴ": "ヴ",
"ガ": "ガ",
"ギ": "ギ",
"グ": "グ",
"ゲ": "ゲ",
"ゴ": "ゴ",
"ザ": "ザ",
"ジ": "ジ",
"ズ": "ズ",
"ゼ": "ゼ",
"ゾ": "ゾ",
"ダ": "ダ",
"ヂ": "ヂ",
"ヅ": "ヅ",
"デ": "デ",
"ド": "ド",
"バ": "バ",
"ビ": "ビ",
"ブ": "ブ",
"ベ": "ベ",
"ボ": "ボ",
};
return dakuten[m.group(0)!] ?? m.group(0)!;
});
val = val.replaceAllMapped(RegExp("[ハ-ホ]゚"), (Match m) {
var handakuten = <String, String>{
"パ": "パ",
"ピ": "ピ",
"プ": "プ",
"ペ": "ペ",
"ポ": "ポ",
};
return handakuten[m.group(0)!] ?? m.group(0)!;
});
val = val.replaceAllMapped(RegExp("[ヲ-ンー]"), (Match m) {
var other = <String, String>{
"ア": "ア",
"イ": "イ",
"ウ": "ウ",
"エ": "エ",
"オ": "オ",
"ァ": "ァ",
"ィ": "ィ",
"ゥ": "ゥ",
"ェ": "ェ",
"ォ": "ォ",
"カ": "カ",
"キ": "キ",
"ク": "ク",
"ケ": "ケ",
"コ": "コ",
"サ": "サ",
"シ": "シ",
"ス": "ス",
"セ": "セ",
"ソ": "ソ",
"タ": "タ",
"チ": "チ",
"ツ": "ツ",
"テ": "テ",
"ト": "ト",
"ナ": "ナ",
"ニ": "ニ",
"ヌ": "ヌ",
"ネ": "ネ",
"ノ": "ノ",
"ハ": "ハ",
"ヒ": "ヒ",
"フ": "フ",
"ヘ": "ヘ",
"ホ": "ホ",
"マ": "マ",
"ミ": "ミ",
"ム": "ム",
"メ": "メ",
"モ": "モ",
"ヤ": "ヤ",
"ユ": "ユ",
"ヨ": "ヨ",
"ラ": "ラ",
"リ": "リ",
"ル": "ル",
"レ": "レ",
"ロ": "ロ",
"ワ": "ワ",
"ヲ": "ヲ",
"ン": "ン",
"ッ": "ッ",
"ャ": "ャ",
"ュ": "ュ",
"ョ": "ョ",
"ー": "ー",
};
return other[m.group(0)!] ?? m.group(0)!;
});
return val;
}