如何仅用HTML限制输入框仅含字母、数字、.和_?已用pattern求验证
问题解答
你的pattern写法确实有误,当前的[a-z][A-Z][0-9][.][_]规则要求输入内容必须依次匹配小写字母、大写字母、数字、句号、下划线,而且只能是这5个字符,完全不符合你想要的“允许包含这些字符任意组合”的需求。
正确的写法是把所有允许的字符放在同一个字符类里,再搭配合适的量词来限定内容长度:
<input name="username" type="text" pattern="^[a-zA-Z0-9._]+$" title="用户名只能包含大小写字母、数字、英文句号和下划线" placeholder="Username" />
规则细节解释:
^:匹配输入内容的起始位置[a-zA-Z0-9._]:定义允许的字符集合,涵盖大小写字母、数字、英文句号和下划线+:表示前面的字符集合可以出现1次或多次(如果需要允许空输入,可替换为*)$:匹配输入内容的结束位置
添加title属性后,当用户输入不符合规则的内容时,浏览器会弹出你指定的提示文字,能提升用户输入时的体验。
内容的提问来源于stack exchange,提问作者Noah Zemljic
相关产品推荐
相关产品推荐

