半角カナから全角カナへ変換する(濁点等対応版)


動作ブラウザ 【 IE:3.0   NN:2.0
Internet Explorer Netscape Navigator Opera iCab Safari
3.0x 4.0x 4.5 5.0x 5.5 6.0 2.0x 3.0x 4.0x 4.x 6.0 7.0 7.x 2.x 1.x
Windows - × × × -
Macintosh - × × ×
UNIX - - - - - × × × -

ポイント txt = "アイウエオカキクケコサシスセソタチツテトナニヌネノハヒフヘホマミムメモヤユヨラリルレロワヲンァィゥェォャュョッ、。ー「」゙゚"; zen = "アイウエオカキクケコサシスセソタチツテトナニヌネノハヒフヘホマミムメモヤユヨラリルレロワヲンァィゥェォャュョッ、。ー「」"; zen+= "     ガギグゲゴザジズゼゾダヂヅデド     バビブベボ                             "; zen+= "                         パピプペポ                             "; str = ""; for (i=0; i<motoText.length; i++) { c = motoText.charAt(i); n = txt.indexOf(c,0); if (n >= 0) c = zen.charAt(n); str += c; } return str;
説  明 半角カナから全角カナに変換するには、あらかじめ半角カナ文字列と、全角カナ文字列を用意しておき、先頭から1文字調べ置き換えていきます。半角カナかどうかは文字コードを調べる方法もありますが、もっとも無難な方法、indexOf()を使って半角カナかどうかを調べています。
サンプル <html> <head> <title>半角カナから全角カナへ変換する</title> <script language="JavaScript"><!-- function toZenkaku(motoText){ txt = "アイウエオカキクケコサシスセソタチツテトナニヌネノハヒフヘホマミムメモヤユヨラリルレロワヲンァィゥェォャュョッ、。ー「」゙゚"; zen = "アイウエオカキクケコサシスセソタチツテトナニヌネノハヒフヘホマミムメモヤユヨラリルレロワヲンァィゥェォャュョッ、。ー「」"; zen+= "     ガギグゲゴザジズゼゾダヂヅデド     バビブベボ                              "; zen+= "                         パピプペポ                             "; str = ""; for (i=0; i<motoText.length; i++){ c = motoText.charAt(i); cnext = motoText.charAt(i+1); n = txt.indexOf(c,0); nnext = txt.indexOf(cnext,0); if (n >= 0){ if (nnext == 60){ c = zen.charAt(n+60); i++; }else if (nnext == 61){ c = zen.charAt(n+120); i++; }else{ c = zen.charAt(n); } } if ((n != 60) && (n != 61)){ str += c; } } return str; } // --></script> </head> <body> <form name="myFORM"> 変換前:<input type="text" size="16" name="moto"><br> 変換後:<input type="text" size="16" name="saki">     <input type="button" value="変換" onClick="document.myFORM.saki.value=toZenkaku(document.myFORM.moto.value)"> </form> </body> </html>
補足説明 作成者:野口 貴史さま。

■サンプルスクリプトを実行する >>実行
■各ブラウザでの動作結果を見る >>View!

写真素材 PIXTA