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]+ . [a-z]+
用test检验我们会发现
大帝滴答123@qq.com
这样的邮箱test也会返回true,因为它只截取了部分,检验当然返回true
所以考虑贪婪模式,行首行尾限制住
1
2
3
4
5
6
7
8
9
10
11
^/w+ @[a-z0-9]+. [a-z]+$
<pre>`
固定电话:
三种情况都会出现,所以都写进去
0571-1234456
1234456
0571-1234456-123
(0\d{2,3}-)?[1-9]\d{7}(-\d{1,5})?
当然,Jquery提供了jquery.validate这个插件,正则什么都免了
测试来一发