技術ブログ

プログラミング、IT関連の記事中心

React TypeScriptで日本語(ひらがな、カタカナ、漢字)の入力チェックをする方法

目次

React TypeScriptで日本語(ひらがな、カタカナ、漢字)の入力チェックをする方法

日本語の入力チェックは、ReactとTypeScriptを使用したWebアプリケーション開発において頻繁に必要とされる機能です。
この記事では、ひらがな、カタカナ、漢字のみを許可する入力チェックの実装方法を解説します。

正規表現による文字範囲の定義

日本語の入力をチェックするには、まず正規表現を用いて日本語の文字範囲を定義します。

const japaneseRegex = /^[ぁ-んァ-ン一-龥]+$/;

この正規表現は、以下の日本語文字をカバーします:

  • ぁ-ん: ひらがな
  • ァ-ン: カタカナ
  • 一-龥: 常用漢字

入力チェック関数の作成

次に、テキスト入力が日本語のみかどうかを判定する関数を作成します。

const isValidJapanese = (text: string): boolean => {
  return japaneseRegex.test(text);
};

React コンポーネントでの使用

最後に、上記のチェック関数をReactコンポーネントで利用します。

import React, { useState } from 'react';

const JapaneseInput: React.FC = () => {
  const [input, setInput] = useState('');
  const [isValid, setIsValid] = useState(true);

  const handleChange = (event: React.ChangeEvent<HTMLInputElement>) => {
    const value = event.target.value;
    setInput(value);
    setIsValid(isValidJapanese(value));
  };

  return (
    <div>
      <input type="text" value={input} onChange={handleChange} />
      {!isValid && <p>入力はひらがな、カタカナ、漢字のみにしてください。<br></p>}
    </div>
  );
};

export default JapaneseInput;

このコンポーネントでは、テキスト入力が変更されるたびに、入力が日本語のみであるかどうかをチェックします。
もし入力が日本語以外の文字を含む場合は、エラーメッセージを表示します。

注意点

この正規表現は完璧ではありません。
特殊な漢字や旧字体など、カバーされていない文字が存在する可能性があります。
さらに、ユーザーフレンドリーなインターフェース設計の観点から、エラーメッセージはわかりやすく提示することが重要です。