gpt4 book ai didi

regex - HTML 模式验证始终为 false

转载 作者:行者123 更新时间:2023-11-27 23:13:35 24 4
gpt4 key购买 nike

我正在尝试对 HTML 中的密码插入表单执行客户端检查,我需要密码至少包含一个字母字符和一个数字。我尝试了以下内容:

<input type="password" name="reg-password" pattern="(?=.*\d)(?=.*[a-zA-Z])" title="The password must contain at least a number and an alphabetic character" required>

但由于某些我不理解的原因,验证总是失败,我无法提交表单。你能解释一下我的代码哪里错了吗?我还用一些在线正则表达式调试器测试了正则表达式,应该没问题。提前致谢。

此外,是否有任何特殊原因我应该避免使用这种客户端验证方法并改用 Javascript 代码?我发现这种方式要快得多(如果它有效的话)

最佳答案

HTML5 input pattern需要完整的字符串匹配,请使用以下内容:

pattern="(?=.*\d)(?=.*[a-zA-Z]).+"

它将被翻译成 /^(?:(?=.*\d)(?=.*[a-zA-Z]).+)$/ 正则表达式并且会正确处理输入。

如果您正在使用一些覆盖 HTML5 模式属性处理的其他框架,请显式添加 anchor :

pattern="^(?=.*\d)(?=.*[a-zA-Z]).+$"

它适用于所有环境。

JS 演示:

<form>
<input type="password" name="reg-password" pattern="^(?=.*\d)(?=.*[a-zA-Z]).+" title="The password must contain at least a number and an alphabetic character" required>
<input type="submit">
</form>

关于regex - HTML 模式验证始终为 false,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44497992/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com