[英]How to make input password require at least one special character (bracket included)
我想知道如何将带有括号的特殊字符部分(如 {} [] () 和其他内容(如“')添加到我在下面尝试的唯一字符中,但由于某种原因,当我添加另一个字符时它停止工作.
<-- works but does not have any brackets or quotes for special character-->
<form acton = "#">
<input type="password" id="newPass" required
pattern="(?=.*\d)(?=.*[a-z])(?=.*[A-Z])(?=.*?[0-9])(?=.*?[!@#$%^&*+`~=?\|<>/]).{8,}"
<button>submit</button>
</form>
上面的部分有效,但没有引号或更多特殊字符
下面的代码有括号但不起作用
<-- does not work (if you do not enter special character user will be able to submit but it does not have any brackets -->
<form acton = "#">
<input type="password" id="newPass" required
pattern="(?=.*\d)(?=.*[a-z])(?=.*[A-Z])(?=.*?[0-9])(?=.*?[~`!@#$%^&*()-_=+[]{};:'.,"\|/?><]).{8,}"
<button>submit</button>
</form>
这也不起作用(来自答案)
<form acton = "#">
<input type="password" id="pass" required
pattern="(?=.*\d)(?=.*[a-z])(?=.*?[0-9])(?=.*?[~`!@#$%\^&*()\-_=+\[\]{};:\'.,\"\\|/?\>\<]).{4,}">
<button>submit</button>
</form>
我正在寻找一个使底部(带括号的那个和我包括的所有特殊字符)有效的答案。
由于它是正则表达式,因此[.....]
内的所有字符都是允许的,因此您应该在其中添加括号。 您可以使用转义字符来做到这一点(因为括号在正则表达式中起作用)。 因此,只需将\]
和\[
添加到[.....]
中允许的字符即可。
尝试:
<input type="password" name="pw" pattern="(?=.*?[#?!@$%^&*-\]\[])"
顺便说一句.. 我建议使用正则表达式备忘单,它将在验证任务中帮助您很多。
至于你的编辑:
"
和'
需要转义。虽然\"
\'
不起作用,但您可以使用\x27
和\x22
代替,它们是 ascii 表中"
和'
的十六进制表示。
尝试:
<form acton = "#">
<input type="password" id="pass" required pattern = "(?=.*\d)(?=.*
[a-z])(?=.*?[0-9])(?=.*?[~`!@#$%\^&*()\-_=+[\]{};:\x27.,\x22\\|/?><]).{4,}">
<button>submit</button>
</form>
如果在模式搜索期间需要匹配正则表达式(例如\]
)字符,您应该转义它们。 另外,请参阅现有答案:
以下对我有用,希望它对你有用:(我只是添加了转义字符)
<input type="password" id="newPass" required
pattern="(?=.*\d)(?=.*[a-z])(?=.*[A-Z])(?=.*?[0-9])(?=.*?[!@#$%^&*+`~'=?\|\]\[\(\)\-<>/]).{8,}">
你实际上非常接近。 最大的错误是:
您应该escape
character group
中的一些特殊字符,并且应该将hyphen as the last character
(否则它是一个范围)。
这是您要求的 RegExp:
<input type="password" id="pass" required pattern = "(?=.*\d)(?=.*[a-z])(?=.*?[0-9])(?=.*?[~`!@#$%^&*()_=+\[\]{};:'.,"\\|\/?><-]).{4,}">
更新:我忘记了 html 编码模式以直接在 html 中使用。 现在它应该可以工作了。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.