对表单进行验证

215 阅读3分钟

本文已参与「新人创作礼」活动,一起开启掘金创作之路。

第1关:表单验证相关的概念

相关知识

表单验证的概念

表单验证是指在用户提交表单之前,验证用户输入的数据是否合法。 HTML5提供了一套简单的验证方式,在表单提交时,会根据情况弹出一些简单的提示,如“请填写此字段”“请匹配要求的模式”等,不同的浏览器所弹出的提示内容会有所不同。

表单验证的类型

HTML5中主要包括以下几个方面的验证:输入类型的验证、日期和时间范围的验证、必填字段的验证、步长的验证、字符长度的验证、数值范围的验证、正则表达式的验证等。

required非空验证

在某个表单控件中添加required属性,则表明该表单的值不能为空。required 属性适用于以下类型:text, search, url, telephone, email, password, date pickers, number, checkbox, radio 以及 file。 示例如下: <input type="text" placeholder="请输入用户名" required>

maxlength字符长度验证

在某个表单控件中添加maxlength属性,可限定输入的字符数。maxlength 属性与<input type="text"><input type="password"> 配合使用。 示例如下: <input type="password" maxLength="10"/>

输入类型的验证

HTML5新增了一些具有校验功能的input控件的类型,分别是:

  • email:要求输入内容必须符合电子邮件地址的格式。
  • url:要求输入内容必须符合URL的格式
  • number:要求输入内容必须为数字,并可通过min、max、step等属性来设置最小值、最大值和间隔

示例如下: <input type="email"/> <input type="url"/> <input type="number" min="0" max="100" step="10" value="20"/>

pattern验证

HTML5新增的pattern属性具有对表单中输入字段模式进行验证的功能。适合于text、serch、url、telephone、email、password等<input>类型。 示例如下: <input type="text" pattern="^[0-9]{12}$"/> 可以看到,pattern属性取值为符合某种规则的正则表达式,它以“^”开始,以“$”结束,中间是“规则字符串”,规则字符串通常由普通字符和元字符组成。

  • 普通字符:由大小写的字母和数字组成
  • 元字符:是具有特殊含义的字符 常见的元字符及其功能说明如下图所示:  元字符

通关知识

1、下列选项中,对表单控件的值进行非空验证的属性为(A)
A、required
B、checked
C、selected
D、null
​
2、在input控件的类型中,下列选项中对输入有校验功能的是(C)
A、text
B、password
C、email
D、submit
​
3、关于输入字符数的限定,下列代码中,设置正确的是(D)。
A、<input type="number"  size="6"/>
B、<input type="text"  size="6"/>
C、<input type="number"  maxlength="6"/>
D、<input type="text"  maxlength="6"/>
​
4、匹配1个或多个在它前面的元字符是(B)。
A、*
B、+
C、?
D、.
​
5、若限定用户输入6位数字,下列的代码正确的是(C)。
A、<input type="text"     pattern="^([0-9]{6,})$">
B、<input type="text"     pattern="^([0-9](6))$">
C、<input type="text"     pattern="^([0-9]{6})$">
D、<input type="text"     pattern="^([0-9](6,))$">

第2关:非空校验

相关知识

非空校验示例

在表单text类型的input标签中添加required属性,可以设置文本框的值不能为空;在该标签中通过title属性可以设置相关的提示信息。

<form>   
     用户名:<input type="text"  required="required" title="用户名一定要写哦!" maxlength="16">      <input type="submit"  value="提交" />
</form>

显示效果为:

编程要求

根据提示,在右侧编辑器补充代码,在右侧编辑器中的Begin - End区域内补充代码,具体要求是:

  1. form></form>中创建一个1个不超过6位的密码输入框。
  2. 要求用户必须填写密码。
  3. 用户鼠标悬停在密码框上时,显示提示文字“请输入不超过6位的密码!”。

运行效果如下:

通关代码

 <html>
  <head>
   <meta charset="utf-8"/>
   <title>设置非空校验</title>
  </head>
  <body>
   <form>
      密码:
   <!-- ********* Begin ******* -->
      <input type="password" maxlength="6" required="required" title="请输入不超过6位的密码!" />
   <!-- ********* End ********* -->
       <input type="submit"  value="提交"/> 
    </form>
  </body>
 </html>

第3关:邮箱校验

相关知识

邮箱校验示例

在表单email类型的input标签中添加required属性,可以设置电子邮箱输入框的值不能为空;在该标签中通过placeholder属性可以设置相关的提示信息。

<form>   
    邮箱:<input type="email"  required="required" placeholder="示例:12345@qq.com"/>   
    <input type="submit"  value="提交" />
</form>

显示效果为:

编程要求

根据提示,在右侧编辑器补充代码,在右侧编辑器中的Begin - End区域内补充代码,具体要求是:

  1. form></form>中创建一个1个电子邮箱的输入框。
  2. 要求用户必须填写电子邮箱。
  3. 电子邮箱输入框中显示输入格式的提示信息,提示文字“输入格式:xxx@xxx”。

运行效果如下:

通关代码

 <html>
  <head>
   <meta charset="utf-8"/>
   <title>设置邮箱校验</title>
  </head>
  <body>
   <form>
      密码:
     <input type="password"  required="required" title="请输入6位密码!" maxLength="6"/><br/>
     邮箱:
   <!-- ********* Begin ******* -->
     <input type="email" required="required" placeholder="输入格式:xxx@xxx" />
   <!-- ********* End ********* -->
     <br/> <input type="submit"  value="提交"/> 
    </form>
  </body>
 </html>

第4关:pattern验证

相关知识

邮箱校验示例

在表单text类型的input标签中添加pattern属性,可以根据匹配要求设置规格字符串。匹配输入6位数字的示例如下。

<form>   
      邮政编码:<input type="text"  required="required" pattern="^[0-9]{6}$"/> 
      <input type="submit"  value="提交" />
</form>

显示效果为:

编程要求

根据提示,在右侧编辑器补充代码,在右侧编辑器中的Begin - End区域内补充代码,具体要求是:

  1. form></form>中创建一个1个年龄的输入框。
  2. 要求用户必须填写年龄框。
  3. 年龄输入框中只能输入0-99的数字。

运行效果如下:

通关代码

<html>
  <head>
   <meta charset="utf-8"/>
   <title>设置年龄校验</title>
  </head>
  <body>
   <form>
      密码:
     <input type="password"  required="required" title="请输入6位密码!" maxLength="6"/><br/>
     邮箱:
      <input type="email"  required="required" placeholder="输入格式:xxx@xxx"/><br/>
     年龄:
   <!-- ********* Begin ******* -->
     <input type="text" required="required" pattern="^[1-9]?[0-9]$" />
   <!-- ********* End ********* -->
     <br/> <input type="submit"  value="提交"/> 
    </form>
  </body>
 </html>

注意事项

<input>标签可以看做是一个单标签,单标签注意单标签的书写规范,需要在结补上右斜线/