我有以下HTML用于确保密码长度超过8个字符:
<label>Password <small>required</small>
<input type="password" name="password" id="password" required pattern=".{8,}">
</label>
<small class="error">Your password must be at least 8 characters long.</small>
这很有效。但是,如果在不同的字段中,我使用模式[a-zA-Z]+
,如下所示:
<label>Username <small>required</small>
<input type="text" name="username" required pattern="[a-zA-Z0-9]+">
</label>
<small class="error">Username must consist out of letters or numbers only.</small>
它将允许一切。如果我将用户名字段中的模式更改为.{8,}
,则它将仅允许长度超过8个字符的输入,如预期的那样。为什么用户名字段的模式不起作用?
The documentation表示这是正确的方法:
<label>Your name <small>required</small>
<input type="text" required pattern="[a-zA-Z]+">
</label>
<small class="error">Name is required and must be a string.</small>
答案 0 :(得分:1)
修复方法是将模式包装在行开头和结尾字符中,如下所示:
<input type="text" name="username" required pattern="^[a-zA-Z0-9]+$">
也许这是基金会中需要在他们的Github上报告的错误?