如何修复设置pattern="[A-Za-z]"的input输入框无法接受有效输入的问题
问题原因
你写的pattern="[A-Za-z]"规则仅匹配单个英文字符,当输入内容长度大于1时,就会触发校验不通过提示,你输入的「Ruben」包含5个字符,自然不符合规则要求。
修复方案
根据你的实际校验需求修改pattern规则即可:
- 仅要求内容全部由英文字母组成、无长度限制(最少1个字符):修改为
pattern="[A-Za-z]+",末尾的+是量词,表示匹配1个及以上的前置规则字符 - 需要限制字符长度范围:比如要求2-20位英文字母,修改为
pattern="[A-Za-z]{2,20}",大括号内的数值分别对应最小、最大匹配长度
补充说明
HTML原生的pattern属性默认会对输入框的整个内容做全量匹配,不需要额外添加^、$首尾锚点,当然加上也不会影响匹配效果。
正确的使用示例如下:
<input type="text" name="username" pattern="[A-Za-z]+" placeholder="请输入英文字母组成的用户名">
内容的提问来源于stack exchange,提问作者Ruben Moons
相关产品推荐
相关产品推荐

