業務中に全角から半角に変換する必要が出て来た。
少しでも、その作業が楽になればと思い色々調べて作ったので、メモ的に残す。
##動作
- 「半角へ」ボタンを押す。
- InputBoxが立ち上がる。
- 前角英数字を入力する。
- 「OK」を押す。
- 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) {
window.alert('キャンセルされました');
return;
}
//空白でなければ、半角へのプログラム実行。
this.zenhan(box);
}
//半角へのプログラム
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 で全角数字を半角に変換
入力ダイアログを表示する