まず、Reactコンポーネントの状態に、入力フィールドの値を保持するstate変数を追加します。
import React, { useState } from 'react';
function MyForm() {
const [inputValue, setInputValue] = useState('');
const handleInputChange = (event) => {
setInputValue(event.target.value);
};
return (
<div>
<input type="text" value={inputValue} onChange={handleInputChange} />
{/* ここにバリデーションエラーメッセージを表示するコンポーネントを追加することもできます */}
</div>
);
}
export default MyForm;
次に、正規表現を使用して入力値をバリデーションする関数を作成します。文字のみで構成されているかどうかをチェックするために、/^[a-zA-Z]+$/
の正規表現を使用します。
function validateInput(inputValue) {
const regex = /^[a-zA-Z]+$/;
return regex.test(inputValue);
}
最後に、入力フィールドの値をバリデーションするために、handleInputChange
関数内でvalidateInput
関数を呼び出します。
const handleInputChange = (event) => {
const inputValue = event.target.value;
const isValid = validateInput(inputValue);
if (isValid) {
setInputValue(inputValue);
}
};
これで、Reactで文字のみの正規表現バリデーションを行う方法が分かりました。必要に応じて、バリデーションエラーメッセージを表示するためのコンポーネントを追加することもできます。また、正規表現パターンを変更することで、他のバリデーションルールにも対応できます。