JavaScript

変換

全角数字から半角数字へ変換

更新日:2024-07-26

◆全角数字から半角数字へ変換

テキストボックスに入力した全角数字を半角数字に変換する機能です
全角・半角数字以外は空文字に置き換えしています

動作例では「charCodeAt」で取得される整数と、UTF-16文字コード(変換前・変換後)の表示を加えています

コード例 - Sample

HTML

<div class="example-sample">
 <input type="text" id="in1" maxlength="20">
 <input type="button" id="bt1" value="変換">
</div>

CSS

<style>
.example-sample{
 display: flex;
}
.example-sample>[type="text"]{
 display: block;
 width: 20rem;
 font-size: 0.9rem;
 line-height: 1em;
 background-color: #e5e5e5;
 border: 1px solid #000;
}
.example-sample>[type="button"]{
 margin-left: 15px;
 padding: 0 10px;
}
</style>

JavaScript

<script>
//ボタンクリックでイベント動作
document.getElementById('bt1').addEventListener('click', function(){
 //入力文字を変数に格納
 let e1 = document.getElementById('in1').value;

 //正規表現で全文字を「0-90-9」の文字列以外を空文字に置き換え
 let e2 = e1.replace(/[^0-90-9]/g, '');

 //入力された全角数字全文字を半角に置き換え
 let e3 = e2.replace(/[0-9]/g, function(s){
  let e31 = s.charCodeAt(0); //UTF-16コードをあらわす整数を取得
  let e32 = e31 - 0xFEE0; //上記で取得した整数から「0xFEE0」を引く
   //※頭の「0x」は16進数を示す文字列で、3文字目以降のFEE0(16進数)を10進数にすると65248
  return String.fromCharCode(e32); //上記で取得した整数を文字に変換
 });

 //「innerText」で出力
 document.getElementById('in1').value = e3;
});
</script>

動作例 - Sample

▶全角数字を入力し変換ボタンを押すと、半角数字に変換されます ▶数字以外の入力は削除されます ▶それぞれ16進数を示す「0x」を先頭に付けています

「charCodeAt()」で取得される整数:

半角に変換前のUTF-16文字コード:

半角に変換後のUTF-16文字コード: