I'm trying to do a pattern match on the password input, but somehow the HTML claims there is a mismatch, while the JavaScript claims a match. Testing my regex at regexr.com/7gmmi shows everything works fine...
What did I miss?
<input id="password" type="password" placeholder="密码输入" pattern="/^(?!.*(.){1})(?=(.*[\d]){2,})(?=(.*[a-z]){2,})(?=(.*[A-Z]){2,})(?=(.*[\D\W\S]){2,})(?:[\d\w\S]){8,64}$/">
const patternPass = new RegExp(/^(?!.*(.){1})(?=(.*[\d]){2,})(?=(.*[a-z]){2,})(?=(.*[A-Z]){2,})(?=(.*[\D\W\S]){2,})(?:[\d\w\S]){8,64}$/); console.log(patternPass.test("FAGX@s#A2dred01sd")); /// true
Have you tried removing the leading and trailing slashes from the pattern attribute and retesting?