Bluetom

About Validation

先整理下正则表达式

RegExp对象

- JS风格----new RegExp("a","i")

- perl风格----/a/i

search - 字符串搜索

- 忽略大小写:i--ignore

match - 获取匹配项目

- 量词:+

- 量词变化:\d和\d\d和\d+

- 全局匹配:-g

replace - 过滤

test - 返回ture、false

任意范围

- a[abc]c---------------aac,abc,acc

指定范围

- [0,9]和\d+一样

排除

- [^a-z]字母不要

- [^a-z0-9]数字字母不要

字符串

组合

     - [a-z0-9A-Z]

转义

     - .(点)------任意字符

     - \d  \w  \s

     - \D  \W  \S

\w------英文、数字、下划线

\W-----[^a-z0-9_]

\s-------空白字符

\S-------除了空白字符

\D------[^0-9]

常用量词

{n,}------------至少n次

*   ------------任意次

?   ------------零次或一次{0,1}

+  ------------一次或任意次{1,}

{n}------------正好n次

{n,m}-----------最少n次,最多m次

Example:

str.match(\d+/g);
\d{8}
`</pre>

检验邮箱:

英文、数字、下划线     @          英文数字     .        英文

          /w+                 @         [a-z0-9]+     &#46;       [a-z]+

用test检验我们会发现

大帝滴答123@qq.com

这样的邮箱test也会返回true,因为它只截取了部分,检验当然返回true

所以考虑贪婪模式,行首行尾限制住

1
2
3
4
5
6
7
8
9
10
11

^/w+ @[a-z0-9]+&#46; [a-z]+$

<pre>`
固定电话:
三种情况都会出现,所以都写进去
0571-1234456
1234456
0571-1234456-123

(0\d{2,3}-)?[1-9]\d{7}(-\d{1,5})?

当然,Jquery提供了jquery.validate这个插件,正则什么都免了

测试来一发

http://codepen.io/bluetomlee/details/nHzhJ/

Bluetom

作为挨踢业的前段湿 搬过砖也画过画:爱看、爱听、爱玩儿、爱折腾、爱打撸啊撸、intj

Proudly published with Hexo