[JavaScript] 平仮名しか入力できないInput実装する方法

2 min read

"ひらがな"のみ入力許可とする Input を作ってみる。

ユースケース

  • 会員登録フォームなどの「ふりがな」

仕様

  • 許容文字: \u3040-\u309f
    ぁあぃいぅうぇえぉおかがきぎくぐけげこごさざしじすずせぜそぞただちぢっつづてでとどなにぬねのはばぱひびぴふぶぷへべぺほぼぽまみむめもゃやゅゆょよらりるれろゎわゐゑをん
  • ペースト許容しない
  • ドラッグ&ドロップ許容しない

デモ

実装

input.addEventListener("keyup", function (e) {
  let tmp = [];

  this.value.split("").forEach(function (item, i) {
    if (item.match(/^[\u3040-\u309f]+$/)) {
      tmp.push(item);
    }
  });

  if (tmp.length > 0) {
    this.value = tmp.join("");
  } else {
    this.value = "";
  }
});

このページをシェアする

Related Articles

[ESLint] 特定のimportにおいてパスの末尾スラッシュを禁止する方法

背景 / やりたいこと / @typescript-eslint/no-restricted-imports を利用した / 余談(末尾のスラッシュ自体を禁止にする)

`<input type="range">`のstepを可変にする方法

仕様 / 完成デモ / 実装 / 参考

[Vite] CSSだけをビルドする方法

背景 / Vite をインストール / 仕様

CSS in JSとは何か

想定読者 / そもそも JS フレームワーク(React、Vue.js)を採用する理由とは何か / 「命令的 UI」 と 「宣言的 UI」 / 「命令的 UI」 VS 「宣言的 UI」 / CSS in JS とは / CSS in JS ライブラリ / Emotion の使い方 / 利用するメリット / 利用するデメリット / 関連 / Footnotes

[CSS in JS] 外部のリセットCSSを使う方法

目的 / 課題 / おまけ