【问题标题】:HTML5 Input pattern matching doesn't work, Rubular regex doesHTML5 输入模式匹配不起作用,Rubular 正则表达式起作用
【发布时间】:2018-04-15 12:09:50
【问题描述】:

关于为什么https://codepen.io/anon/pen/qVbjGa的任何想法:

<form>
    <input type="text" name="formField" title="Password must be at least eight characters in length, contain at least one capital letter, one number, and one special character." 
           pattern="\A(?=.*[a-z])(?=.*[A-Z])(?=.*[\W_])(?=.*[\d]).{8,}\z" required />
    <input type="submit" value="Submit" />
</form>

不会工作,http://rubular.com/r/9oIgojECMf 会?

【问题讨论】:

    标签: ruby regex html


    【解决方案1】:

    您必须将输入\A 的开头替换为^,并将输入的结尾从\z 替换为$

    <form>
      <input
        type="text"
        name="formField"
        title="Password must be at least eight characters in length, contain at least one capital letter, one number, and one special character." 
        pattern="(?=.*[a-z])(?=.*[A-Z])(?=.*[\W_])(?=.*[\d]).{8,}"
        required />
      <input type="submit" value="Submit" />
    </form>

    【讨论】:

    • 非常感谢!我会尽快接受答案!
    • @Drew 您可能认为这很有趣,但您不需要任何 ^$ - 删除它们,pattern="(?=.*[a-z])(?=.*[A-Z])(?=.*[\W_])(?=.*\d).{8,}" 将起作用。
    • HTML5的pattern属性正则表达式中不需要使用^$,去掉锚点,因为它们是引擎自动添加的。
    • 你说得对@WiktorStribiżew,我已经更新了答案,谢谢。
    • 你想用[W_][d]@Drew做什么?
    猜你喜欢
    • 1970-01-01
    • 2023-01-22
    • 1970-01-01
    • 2014-09-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多