🔤
【JavaScript】ローマ字をひらがなに変換する処理を書いた
例えば、aiueo
を あいうえお
に変換するような処理を書いてみました。
デモページ
使用している日本語入力システムを切った状態で上側のテキスト入力欄に適当な文字を打ち込むと動作を確認できます。
実装
ローマ字とひらがなの対応表
対応表は「キー = 入力文字」なオブジェクトで表現していて、深い理由はありませんがアルファベット順に格納されています。
b: {
a: 'ば',
e: 'べ',
i: 'び',
o: 'ぼ',
u: 'ぶ',
y: {
a: 'びゃ',
e: 'びぇ',
i: 'びぃ',
o: 'びょ',
u: 'びゅ'
}
},
記法は、旧 Microsoft IME の詳細設定から確認できるローマ字一覧に ヴ
を ゔ
と変換する点以外は準拠しました。
記号についてはキーボードで入力できるものを実装したつもりですが、なにか資料を基にした訳ではないのでもれがあるかもしれません。
変換処理部分
while 文で入力内容を走査しています。
また、対応表を基に入力を判定するのと合わせて下記の仕様を実装しました。
- 連続した子音が変換に成功した場合「
っ
+ 文字」 -
n
に続けて文字が存在する場合「ん
+ 文字」 - 変換できない文字の次の文字に対応するものが見つからない場合は入力をそのまま出力
使用方法
romaji-hira-convert.ts
を romaji-hira-table.ts
と同階層に置いて読み込むだけです。
import convert from './romaji-hira-convert'
convert('aiueo')
最後に
以上、ローマ字をひらがなに変換する処理の紹介でした。
よかったら参考にしてみてください。
Discussion