3 回答
TA贡献1810条经验 获得超5个赞
因为它是正则表达式,所以里面的所有字符[.....]都是允许的,所以你应该在那里加上括号。您可以使用转义字符来做到这一点(因为括号在正则表达式中起作用)。所以只需将\]and添加\[到里面允许的字符[.....]。
尝试:
<input type="password" name="pw" pattern="(?=.*?[#?!@$%^&*-\]\[])"
顺便说一句.. 我建议使用正则表达式备忘单,它将在验证任务中帮助您很多。
至于你的编辑:
和需要逃脱"。'虽然\" \'不起作用,但您可以使用它们\x27,它们是ascii 表中的和\x22的十六进制表示。"'
尝试:
<form acton = "#">
<input type="password" id="pass" required pattern = "(?=.*\d)(?=.*
[a-z])(?=.*?[0-9])(?=.*?[~`!@#$%\^&*()\-_=+[\]{};:\x27.,\x22\\|/?><]).{4,}">
<button>submit</button>
</form>
TA贡献1820条经验 获得超9个赞
\]
如果在模式搜索期间需要匹配正则表达式(例如 )字符,您应该转义它们。另外,请参阅现有答案:
以下对我有用,希望它对你有用:(我只是添加了转义字符)
<input type="password" id="newPass" required pattern="(?=.*\d)(?=.*[a-z])(?=.*[A-Z])(?=.*?[0-9])(?=.*?[!@#$%^&*+`~'=?\|\]\[\(\)\-<>/]).{8,}">
TA贡献1868条经验 获得超4个赞
你实际上非常接近。最大的错误是:
你应该escape
在里面的一些特殊字符character group
并且你应该有hyphen as the last character
(否则它是一个范围)。
这是您要求的 RegExp:
<input type="password" id="pass" required pattern = "(?=.*\d)(?=.*[a-z])(?=.*?[0-9])(?=.*?[~`!@#$%^&*()_=+\[\]{};:'.,"\\|\/?><-]).{4,}">
更新:我忘了对模式进行 html 编码以直接在 html 中使用。现在它应该可以工作了。
添加回答
举报