全角数字を半角に・半角数字を全角に自動変換するテキストフィールドを作る方法【HTML/CSS/JavaScript・サンプルコード付き】

テキストフィールド
無料ツール
テキストフィールド・テキストエリアを自由に作成

入力タイプ・ラベル・プレースホルダー・サイズ・色・余白・枠線などを設定して、HTML・CSSを自動生成できます。

テキスト入力欄作成ツールを使う
新しいタブで開きます

全角数字を半角に・半角数字を全角に自動変換するテキストフィールドを作る方法

テキストフィールドへ入力した全角数字を半角数字へ、半角数字を全角数字へ自動変換する方法を紹介します。2つのテキストフィールドを用意し、一方では全角数字を半角へ、もう一方では半角数字を全角へ変換します。文字を入力するとすぐに変換されるため、変換ボタンを押す必要はありません。

このサンプルではHTMLで1行入力用のテキストフィールドを配置し、CSSで入力欄のデザインを整え、JavaScriptで数字の全角・半角を変換します。入力内容を数字だけに制限するのではなく、対象となる数字だけを変換する仕組みです。そのため、日本語やアルファベット、記号などはそのまま残せます。

商品番号や管理番号、受付番号など、数字の表記を統一したい入力フォームに利用できます。入力する人によって全角数字と半角数字が混在する場合でも、入力時に指定した形式へ自動変換できるため、お問い合わせフォーム、会員登録画面、ECサイト、管理画面などにも応用できます。

コードについて 本記事のコードはサンプルコードです。ご利用前に必ず動作確認を行ってください。
免責事項 本コードの利用により発生した損害について、当サイトは一切の責任を負いません。

デモ

数字の全角・半角を自動変換

入力した数字だけを指定した形式へ自動変換します。

上のテキストフィールドでは全角数字が半角数字へ、下のテキストフィールドでは半角数字が全角数字へ自動変換されます。日本語やアルファベット、記号などはそのまま残ります。

コードをコピーして使おう!

<!DOCTYPE html>
<html lang="ja">
<head>

  <!-- 文字コードをUTF-8へ設定 -->
  <meta charset="UTF-8">

  <!-- スマートフォン・タブレット表示へ対応 -->
  <meta name="viewport" content="width=device-width, initial-scale=1.0">

  <!-- ブラウザのタブへ表示するページタイトル -->
  <title>数字の全角・半角を自動変換するテキストフィールド</title>

  <!-- CSSファイルを読み込み -->
  <link rel="stylesheet" href="style.css">

</head>
<body>

  <!-- 数字の全角・半角を変換するテキストフィールド全体 -->
  <div class="number-fullwidth-halfwidth-text-field_wrap">

    <!-- 入力エリアのタイトル -->
    <div class="number-fullwidth-halfwidth-text-field_title">
      数字の全角・半角を自動変換
    </div>

    <!-- 入力方法を案内する説明文 -->
    <p class="number-fullwidth-halfwidth-text-field_text">
      入力した数字だけを指定した形式へ自動変換します。
    </p>

    <!-- 全角数字から半角数字へ変換する入力エリア -->
    <div class="number-fullwidth-halfwidth-text-field_group">

      <!-- 全角から半角へ変換するテキストフィールドのラベル -->
      <label
        class="number-fullwidth-halfwidth-text-field_label"
        for="number-fullwidth-halfwidth-text-field-half">
        全角数字 → 半角数字
      </label>

      <!-- 全角数字を半角数字へ変換するテキストフィールド -->
      <input
        class="number-fullwidth-halfwidth-text-field_input"
        id="number-fullwidth-halfwidth-text-field-half"
        name="half-number"
        type="text"
        placeholder="例:商品123-A"
      >

    </div>

    <!-- 半角数字から全角数字へ変換する入力エリア -->
    <div class="number-fullwidth-halfwidth-text-field_group">

      <!-- 半角から全角へ変換するテキストフィールドのラベル -->
      <label
        class="number-fullwidth-halfwidth-text-field_label"
        for="number-fullwidth-halfwidth-text-field-full">
        半角数字 → 全角数字
      </label>

      <!-- 半角数字を全角数字へ変換するテキストフィールド -->
      <input
        class="number-fullwidth-halfwidth-text-field_input"
        id="number-fullwidth-halfwidth-text-field-full"
        name="full-number"
        type="text"
        placeholder="例:商品123-A"
      >

    </div>

  </div>

  <!-- JavaScriptファイルを読み込み -->
  <script src="script.js"></script>

</body>
</html>
コードをコピーする場合 使用するコードのタブを選び、「このタブをコピー」をクリックすると、現在表示中のコードをコピーできます。
サンプル一式を取得する場合 HTML・CSSなどすべてのファイルが必要な場合は、「サンプル一式をダウンロード」をクリックしてください。

ファイル構成と設置方法

このサンプルはHTML・CSS・JavaScriptの3ファイルで構成されています。HTMLでは全角数字から半角数字へ変換するテキストフィールドと、半角数字から全角数字へ変換するテキストフィールドを配置します。CSSでは入力欄のレイアウトや配色、余白、枠線などを設定し、JavaScriptでは入力された数字だけを対象に全角・半角を自動変換します。

sample/
├── index.html
├── style.css
└── script.js

各ファイルの役割
index.htmlはテキストフィールド全体を構成するファイルです。タイトル、説明文、ラベル、プレースホルダー、全角から半角へ変換する入力欄、半角から全角へ変換する入力欄を編集できます。

style.cssはテキストフィールドのデザインを設定するファイルです。全体の横幅、余白、背景色、文字サイズ、枠線、角丸、フォーカス時の表示などを変更できます。

script.jsは数字の全角・半角を自動変換するファイルです。上のテキストフィールドでは全角数字を半角数字へ、下のテキストフィールドでは半角数字を全角数字へ変換します。

設置方法・使い方
sampleフォルダへindex.html、style.css、script.jsを配置します。3つのファイルを同じ階層へ保存したあと、sample/index.htmlをブラウザで開いてください。上のテキストフィールドへ全角数字を入力すると半角数字へ変換され、下のテキストフィールドへ半角数字を入力すると全角数字へ変換されます。

カスタマイズできる内容
index.htmlではタイトル、説明文、ラベル、プレースホルダー、name属性などを変更できます。商品番号、管理番号、受付番号など、数字の表記を統一したい入力欄へ利用できます。

style.cssでは全体の横幅、背景色、余白、文字サイズ、枠線、角丸、テキストフィールドの内側余白、フォーカス時の枠線色や強調表示などを変更できます。

script.jsでは/[0-9]/gに一致する全角数字を半角数字へ、/[0-9]/gに一致する半角数字を全角数字へ変換しています。日本語やアルファベット、記号など、変換対象ではない文字はそのまま残ります。

数値調整
style.css
max-width:700px;
フォーム全体の最大横幅です。値を大きくすると横幅が広がり、小さくするとコンパクトになります。

padding:32px;
フォーム全体の内側余白です。値を大きくすると内容との間隔が広がり、小さくすると詰まった表示になります。

font-size:28px;
タイトルの文字サイズです。値を大きくすると文字が大きくなり、小さくすると控えめになります。

margin-bottom:24px;
2つの入力グループの間隔です。値を大きくするとテキストフィールド同士の間隔が広がり、小さくすると狭くなります。

padding:14px 16px;
テキストフィールドの内側余白です。上下の14pxを変更すると入力欄の高さが変わり、左右の16pxを変更すると入力文字と枠線の間隔が変わります。

border-radius:10px;
テキストフィールドの角丸です。値を大きくすると丸みが強くなり、0にすると四角になります。

box-shadow:0 0 0 4px rgba(...)
フォーカス時に表示する外側の強調表示です。4pxを大きくすると強調部分が太くなり、小さくすると控えめになります。

レスポンシブ対応
このサンプルはレスポンシブ対応です。style.cssのwidth:100%max-width:700pxにより、画面幅に合わせてフォーム全体が縮小表示されます。また、640px以下ではページやフォームの余白、タイトルサイズ、テキストフィールドの内側余白を調整しているため、スマートフォン・タブレット・PCでも利用できます。


こちらもおすすめ


コメント