正则表达式: ((?=.*\d)(?=.*[A-Z]))
输入字符串: qwer1Q
如果您在regex101中检查上述输入字符串,则会通过验证。
但是,如果您将正则表达式包含在html中的pattern
属性中,并尝试再次验证相同的字符串,则不会通过:
<form>
<div>
<input type="text" placeholder="Password"
pattern="((?=.*\d)(?=.*[A-Z]))">
</div>
<div>
<button>Submit</button>
</div>
</form>
[A-Za-z]{2,30}
没有斜杠,量词足够了,对吧?它具有“required”属性,但输入字段仍然接受像1、2、3、@#$%^这样的字符...我的意思是它们被验证通过了,为什么?这在我的本地环境中发生。我使用Dreamweaver,并且在编码时也使用Brackets进行测试。一个注意点:我正在使用本地服务器。我的HTML联系表单保存为php。这是否与客户端验证问题有关? - limakidpattern
属性文档。那里的正则表达式不限制用户输入,验证发生在提交时。如果您没有提供额外的编码,您可以在那里输入任何内容。 - Wiktor Stribiżew