表单验证

此博文非原创作品,只是为以后留下一点笔记。

表单验证,可分为:

在服务器端验证表单

在客户端验证表单

在服务器端验证表单,是指通过内置对象request获取客户端通过表单提交的数据后,进行验证。

在客户端验证表单,是指在客户端的浏览器对用户输入的信息进行合法性验证,如用户名或密码是否为空,电子邮件是否含有“@”“.”等字符,×××号码是否为数字或字母等。

如果客户端输入的信息符合规则或不合法,浏览器则提示用户进行修改,而不会直接发送给服务器,这样使得客户端信息验证能够有效减轻服务器的负担和网络通信的压力。

在进行表单验证时,经常使用正则表达式。

    注意:对于一般的表单验证,尽量在客户端完成,在提交表单之前完成,不要提交表单之后,在服务器端完成,以便减轻服务器的负担和网络通信的压力。

1. 正则表达式

(1) 什么是正则表达式 

正则表达式是一种功能强大而灵活的文本处理工具。

(2) 正则表达式的主要作用

正则表达式主要用于:验证字符串,即检验输入的字符串是否符合给定的模式。

例如,验证输入的电话号码、手机号码、×××号码等是否符合给定的模式。

(3) 正则表达式中的特殊字符

正则表达式用来描述特定的字符串模式,例如正则表达式“a{3}”表示由三个字符“a”构成的字符串,相当于普通字符串“aaa”;正则表达式“\d”表示任意一个数字字符。在正则表达式中,有些字符具有特殊的含义,如下表所示。

正则表达式中的特殊字符

特殊字符

  

.

表示任意一个字符

|

表示或者的意思。例如:“a|b”表示a,或者b

^

^ab,表示以ab开始的串。

$

xy$,表示以xy结尾的串。

[abc]

表示abc中的任意一个字符

[^abc]

表示除abc以外的任意一个字符

[a-z]

介于az中的任意一个字符

[A-Z]

介于AZ中的任意一个字符

[a-zA-Z]

介于az,或AZ中的任意一个字符

-

[]结合使用,表示一段字符的范围。例如:

[a-z],表示介于az中的任意一个字符。

\s

空白符(空格、tab、回车、换行)

\S

非空白符

\d

09的任意一个数字,等同于[0-9]

\D

非数字,等同于[^0-9]

\w

一个字符,可以是字母、数字或下划线,

等同于[a-zA-Z_0-9]

\W

一个字符,不能是字母、数字或下划线,

等同于[^a-zA-Z_0-9]

 (4) 正则表达式中表示字符出现次数的符号

在正则表达式中,还可以通过一些特殊符号来表示字符出现的次数,如下表所示。

正则表达式中表示字符出现次数的符号

特殊字符

  

*

0次或者多次

+

1次或者多次

?

0次或者1

{n}

恰好n

{n, m}

至少n次,不多于m次。

(5一些常用的正则表达式

常用的正则表达式

正则表达式

  

^\d+(\.\d+)*$

数字

^[0-9]*[1-9][0-9]*$

正整数

^\(-?\d+)(\.\d+)?$

浮点数

[\u4e00-\u9fa5]

中文字符

^[a-zA-Z0-9]+$

由数字和26个英文字符组成的字符串

(\S)+[@]{1}(\S)+[.]{1}(\w)+

E-mail地址

\d{3}-\d{8}|\d{4}-\d{7}|\d{4}-\d{8}

国内电话号码

^[0-9]{6}$

邮政编码

^[0-9]{11}$

手机号码

^\d{15}|\d{18}

×××号码