pattern="[a-zA-Z ]*"
我試圖將輸入限制為只有字母,不應允許數字或符號
但給定的代碼不起作用
<input
name="cardName"
type="text"
required
pattern="[a-zA-Z ]*"
defaultValue={kardName}
/>
我也嘗試過使用 onChange 方法,但它也不起作用
anyhelp 將不勝感激
uj5u.com熱心網友回復:
該pattern屬性指定一個正則運算式,在表單提交時檢查元素的值。
你可以從下面的代碼片段中看到,如果你點擊提交,模式就會被檢查并且它實際上正在作業。
<form>
<input
name="cardName"
type="text"
required
pattern="[a-zA-Z ]*"
/>
<input type="submit" />
</form>
如果您想阻止用戶插入某些字符,pattern 屬性將無濟于事。
您可以做的是檢查onKeyDown函式內的字符,并防止在那里插入。像這樣的東西:
const onKeyDown = (event) => {
if (!event.key.match(/[A-Za-z ]/)) {
event.preventDefault()
}
...
<input
name="cardName"
type="text"
required
onKeyDown={onKeyDown}
/>
轉載請註明出處,本文鏈接:https://www.uj5u.com/ruanti/513410.html
標籤:反应正则表达式验证输入
上一篇:如何使角度輸入僅接受特定資料
