HTML
JavaScript

全角を半角に変換する。(javascript)

業務中に全角から半角に変換する必要が出て来た。
少しでも、その作業が楽になればと思い色々調べて作ったので、メモ的に残す。

動作

  1. 「半角へ」ボタンを押す。
  2. InputBoxが立ち上がる。
  3. 前角英数字を入力する。
  4. 「OK」を押す。
  5. TextBoxに半角で出力される。

コード

html

main.html
<html>
<head>
<meta charset="utf-8" />
<script src="zenkaku_hankaku.js"></script>
</head>
<body>
<form name="form">
<input type="textbox" id ="input" value="" />
<input type="button" onclick="box();" value="半角へ" />
</form>
</body>
</html>

Javascript

zenkaku_hankaku.js
//InputBoxを起動。
function box(){
 //InputBoxをセット
 box = window.prompt("半角に変換したい文字を入力してください", "");

 if(box != ""){
  //空白でなければ、半角へのプログラム実行。
  zenhan(box);
 } else {
  //空白だった場合
  window.alert('キャンセルされました');
 }
}

//半角へのプログラム
function zenhan(a){
 //10進数の場合
 a = a.replace(/[A-Za-z0-9]/g, (s) => {
  return String.fromCharCode(s.charCodeAt(0) - 65248);
 });

 //16進数の場合
 a =a.replace(/[A-Za-z0-9]/g, (s) => {
  return String.fromCharCode(s.charCodeAt(0) - 0xFEE0);
 });

 //TextBoxへ変換後の文字列を戻す。
 document.forms.form.input.value = a;
}

参考

JavaScriptで英数を全角/半角に変換する方法
JavaScript で全角数字を半角に変換
入力ダイアログを表示する