正则表达式的HTML验证规则

时间:2018-07-11 09:42:27

标签: html regex html5 validation

我需要验证代码格式:

  1. 需要为10个字符
  2. 字母和数字的组合
  3. a-f至少有1个字母

然后我写:

<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字母是必需的?

4 个答案:

答案 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(大写或小写)或数字组成的字符