尝试使用html5模式添加验证

时间:2018-08-23 09:06:33

标签: jquery regex html5

  • 尝试避免仅在字符串之间允许使用空格开头和结尾
  • 至少需要2个字符
  • 特殊字符和数字验证

所以我添加了类似但不能用于最少两个字符验证的代码

<form action="/action_page.php">
    Full Name: 
   <input type="text" name="full_name"
          pattern="^[a-zA-Z]+ (\s+[a-zA-Z]+)*$" 
          title="Enter your Full name( First name, Last name)">
   <input type="submit">
</form>

3 个答案:

答案 0 :(得分:1)

添加minlength="2"(请参阅minlength support table)以将最小长度限制为2个字符,并删除+(之间的空格,因为在正则表达式模式中空格是有意义的。 / p>

<form action="/action_page.php">
    Full Name: 
   <input type="text" name="full_name" minlength="2"
          pattern="^[a-zA-Z]+(\s+[a-zA-Z]+)*$" 
          title="Enter your Full name( First name, Last name)">
   <input type="submit">
</form>

请注意,您也可以删除模式中的^$并使用

pattern="[a-zA-Z]+(\s+[a-zA-Z]+)*"

因为HTML5引擎will put the pattern in between ^(?: and )$,从而确保了整个字符串匹配。

如果应该支持不支持minlength的浏览器,请在开始时使用先行检查:

pattern="(?=.{2})[a-zA-Z]+(\s+[a-zA-Z]+)*"

断言字符串的开始后,(?=.{2})将立即需要2个字符(注意pattern="(?=.{2})[a-zA-Z]+(\s+[a-zA-Z]+)*"将转换为/^(?:(?=.{2})[a-zA-Z]+(\s+[a-zA-Z]+)*)$/正则表达式,取决于是否带有u修饰符,具体取决于浏览器)。

答案 1 :(得分:0)

找到了用于模式替换的答案

^(?=.{2,}$)([a-zA-Z]+(\s+[a-zA-Z]+)*)$

答案 2 :(得分:0)

尝试这种模式

<form action="/action_page.php"> Country code: <input type="text" name="country_code" pattern="[a-zA-Z]{2}" title="Two letter country code"> <input type="submit"> </form>

默认情况下,它在字符串的开头和结尾都不允许有空格,并且至少可以验证2个字符,第三种情况也可以。