Hankaku-Zenkaku Translator in JS


A Hankaku-Zenkaku translator in JavaScript.

All functions are under the HanZenKaku namespace.

HanZenKaku.h2z('コガイダン');            // コガイダン
HanZenKaku.z2h('コガイダン');         // コガイダン
HanZenKaku.hw2fw('dankogai');         // dankogai
HanZenKaku.fw2hw('dankogai'); // dankogai
HanZenKaku.fs2hs('dan kogai');       // dan kogai
HanZenKaku.hs2fs('dan kogai');        // dan kogai
HanZenKaku.h2k('こがいだん');         // コガイダン
HanZenKaku.k2h('コガイダン');         // こがいだん

If your environment supports ECMASCript 5, `String.prototype' is exteneded as follows:

'コガイダン'.toZenkaku();            // HanZenKaku.h2z('コガイダン')
'コガイダン'.toHankaku();         // HanZenKaku.z2h('コガイダン')
'dankogai'.toFullwidth();         // HanZenKaku.hw2fw('dankogai')
'dankogai'.toHalfwidth(); // HanZenKaku.fw2hw('dankogai')
'dan kogai'.toHalfwidthSpace();  // HanZenKaku.fs2hs('dan kogai')
'dan kogai'.toFullwidthSpace();   // HanZenKaku.hs2fs('dan kogai')
'こがいだん'.toKatakana();        // HanZenKaku.h2k('こがいだん')
'コガイダン'.toHiragana();        // HanZenKaku.k2h('コガイダン')

This is more convenient than the functional version since you can take advantage of the method chain like:

'dan kogai'.toHalfwidth().toHalfwidthSpace();

ES5 is required to prevent from String.prototype from being enumerated so built-in objects like String are safely extended.