我需要验证代码格式:
然后我写:
<input maxlength="200" type="text" name="code" id="code" required="required" class="form-control input-lg" pattern="[a-fA-F0-9]{10}" title="Wrong Code" placeholder="Security Code" />
所以我的模式是pattern="[a-fA-F0-9]{10}"
,但是我如何添加规则,要求至少a-f字母是必需的?
答案 0 :(得分:1)
您可以使用正数lookahead (?=
断言其后的事件至少包含[a-fA-F]
的1次出现
Wiktor Stribiżew建议的更新版本
(?=[0-9]*[a-fA-F])[a-fA-F0-9]{10}
关于正面前瞻(?=[0-9]*[a-fA-F])
(?:
非捕获组
[0-9]*
匹配一个数字零次或多次[a-fA-F]
以小写或大写形式匹配a-f )
关闭非捕获组
<form>
<input maxlength="200" type="text" name="code" id="code" required="required" class="form-control input-lg" pattern="(?=[0-9]*[a-fA-F])[a-fA-F0-9]{10}" title="Wrong Code" placeholder="Security Code" />
<input type="submit" name="submit">
</form>
答案 1 :(得分:1)
Regex pattern to match at least 1 number and 1 character in a string
/^(?=.*[0-9])(?=.*[a-zA-Z])([a-zA-Z0-9]+)$/
在此线程中查看正则表达式,它应符合您的需求。您需要用它替换模式。
答案 2 :(得分:0)
尝试这个
<form action="/action_page.php">
<input type="text" name="code" id="code" required="required" class="form-control input-lg" pattern="(?=[a-fA-F0-9]*[a-fA-F])[a-fA-F0-9]{10}" title="Wrong Code" placeholder="Security Code" />
<input type="submit">
</form>
<b>
<pre>
1)Need to be 10 characters
2)A mix of letters and numbers
3)At least 1 letter from a-f
</pre></b>
答案 3 :(得分:0)
已经有一个可以接受的答案,但是答案还不完整。
要求指出,必须有“字母和数字的组合” 和“从a-f至少有1个字母” 。这意味着下面的这些条目也将匹配:
8adfl9542a
m0ammmmmmm
11111a1111
它们在接受的答案中不匹配。我创建了自己的正则表达式,该表达式也表明上述条目也匹配:
(?=.*[a-fA-F]+)(?=.*[0-9]+)[a-zA-Z0-9]{10}
说明:
(?=.*[a-fA-F]+)
匹配a-f中的至少一个字符(大写或小写)
(?=.*[0-9]+)
匹配至少一个数字
[a-zA-Z0-9]{10}
总字符串长度必须为10个字符,并且必须由a-z(大写或小写)或数字组成的字符