私はReactフォームに取り組んでおり、ユーザーが特殊文字を入力できるように制限し、[A-Za-z]のみを許可する必要があります。
以下のコードを試しましたが、「♥」、「>」、「+」などの特殊文字を挿入することはできます。
export default Component (props {
...
return (
<input
pattern={props.pattern}
/>
)
}
そして、私はそれをフォームの小道具として送信しています:
<Component
pattern="[A-Za-z]+"
/>
何が足りないのか、何が問題なのかを教えていただけますか? よろしくお願いします。
ベストアンサー1
属性pattern
は、標準の HTML フォームでinput
のみ機能します。submit
を使用している場合はreact-hook-form
、次のように ref に記載する必要があります。
<input
name="email"
ref={register({
required: "Required",
pattern: {
value: /^[A-Z0-9._%+-]+@[A-Z0-9.-]+\.[A-Z]{2,}$/i,
message: "invalid email address"
}
})}
/>
react-hook-form のドキュメントを確認してください。