function tozenkaku(){
//配列を用意する
hankaku = new Array("ガ", "ギ", "グ", "ゲ", "ゴ", "ザ", "ジ", "ズ", "ゼ", "ゾ", "ダ", "ヂ", "ヅ", "デ", "ド", "バ", "パ", "ビ", "ピ", "ブ", "プ", "ベ", "ペ", "ボ", "ポ", "ヴ", "ァ", "ア", "ィ", "イ", "ゥ", "ウ", "ェ", "エ", "ォ", "オ", "カ", "キ", "ク", "ケ", "コ", "サ", "シ", "ス", "セ", "ソ", "タ", "チ", "ッ", "ツ", "テ", "ト", "ナ", "ニ", "ヌ", "ネ", "ノ", "ハ", "ヒ", "フ", "ヘ", "ホ", "マ", "ミ", "ム", "メ", "モ", "ャ", "ヤ", "ュ", "ユ", "ョ", "ヨ", "ラ", "リ", "ル", "レ", "ロ", "ワ", "ヲ", "ン", "。", "「", "」", "、", "・", "ー", "゙", "゚");
zenkaku = new Array("ガ", "ギ", "グ", "ゲ", "ゴ", "ザ", "ジ", "ズ", "ゼ", "ゾ", "ダ", "ヂ", "ヅ", "デ", "ド", "バ", "パ", "ビ", "ピ", "ブ", "プ", "ベ", "ペ", "ボ", "ポ", "ヴ", "ァ", "ア", "ィ", "イ", "ゥ", "ウ", "ェ", "エ", "ォ", "オ", "カ", "キ", "ク", "ケ", "コ", "サ", "シ", "ス", "セ", "ソ", "タ", "チ", "ッ", "ツ", "テ", "ト", "ナ", "ニ", "ヌ", "ネ", "ノ", "ハ", "ヒ", "フ", "ヘ", "ホ", "マ", "ミ", "ム", "メ", "モ", "ャ", "ヤ", "ュ", "ユ", "ョ", "ヨ", "ラ", "リ", "ル", "レ", "ロ", "ワ", "ヲ", "ン", "。", "「", "」", "、", "・", "ー", "゛", "゜");
thismoji = document.test.moji.value; // 文字を取得
//変換開始
for (i=0; i<=88; i++) { //89文字あるのでその分だけ繰り返す
while (thismoji.indexOf(hankaku[i]) >= 0){ //該当する半角カナがなくなるまで繰り返す
thismoji = thismoji.replace(hankaku[i], zenkaku[i]); //半角カナに対応する全角カナに置換する
}
}
window.alert(thismoji); //変換が終わったら表示
}
1. 半角カナと、それに対応する全角カナの配列を「new Array」で用意します。
2. このスクリプトではtextareaから文字列を取得します。
3. 配列は89文字あるので、文字数だけ動作(次の4.の動作)を繰り返します。スクリプトでは「for (i=0; i<=88;
i++) {」となっていますが、配列は1からではなく、0から数え始めるため、「1から89」ではなく「0から88」となるからです。
4. indexOfで、それぞれの半角カナ文字が文字列にでてくるかどうかを調べ、あったら対応する全角文字列にreplaceで置換します。
置換命令は1回の命令で1マッチ分だけしか変換しません。つまり、文字列中の最初の1箇所しか置換しないので、複数同じ文字がでてきた場合、後ろの文字は半角のまま残ります。そこで、「while
(indexOf)」で半角文字がなくなるまで繰り返させています。
5. 変換後の文字列をアラートウインドウで表示させます。