Javascript正则表达式
正则表达式在很多地方都常见,Java、python、C#等等,但是正则表达式不受语言的影响,遵守自身语法。
何为正则表达式?
- 正则表达式是构成搜索模式(search pattern)的字符序列。
- .当您搜索文本中的数据时,您可使用搜索模式来描述您搜索的内容。
- 正则表达式可以是单字符,或者更复杂的模式。
特点:
- 灵活性、逻辑性和功能性非常强;
- 可以迅速地用极简单的方式达到字符串的复杂控制。
- 对于刚接触的人来说,比较晦涩难懂。
修饰符
使用字符
常与正则连用的API
search()的使用
var str = "aaaaBbbbcc";
var n = str.search(/b/i);
//n的值会是4,而不会是5,
//它返回的的是这个字母在字符串中的下标,i会让这个字母不区分大小写。
replace()的使用
var str = "aaaaabbccccccc";
var res = str.replace(/BB/i, "hao");
//res的值会是aaaaahaoccccccc,他会找到字符串中的bb,不会区分大小写
//把他替换成hao
使用 test()
test() 方法是一个正则表达式方法。
test() 方法用于检测一个字符串是否匹配某个模式,如果字符串中含有匹配的文本,则返回 true,否则返回 false。
var patt = /e/;
patt.test("Are you pig");
//因为Are中含有e,所以会返回true,我们常用的表达的验证就是用的test().
常用的正则表达式
- Email地址:^\w+([-+.]\w+)@\w+([-.]\w+).\w+([-.]\w+)*$
- 域名:[a-zA-Z0-9][-a-zA-Z0-9]{0,62}(.[a-zA-Z0-9][-a-zA-Z0-9]{0,62})+.?
- InternetURL:[a-zA-z]+://[^\s]* 或 ^http://([\w-]+.)+[\w-]+(/[\w-./?%&=]*)?$
- 手机号码:^(13[0-9]|14[5|7]|15[0|1|2|3|4|5|6|7|8|9]|18[0|1|2|3|5|6|7|8|9])\d{8}$
- 国内电话号码(0511-4405222、021-87888822):\d{3}-\d{8}|\d{4}-\d{7}
- 帐号是否合法(字母开头,允许5-16字节,允许字母数字下划线):1[a-zA-Z0-9_]{4,15}$
- 密码(以字母开头,长度在6~18之间,只能包含字母、数字和下划线):2\w{5,17}$
- 强密码(必须包含大小写字母和数字的组合,不能使用特殊字符,长度在 8-10
之间):^(?=.\d)(?=.[a-z])(?=.*[A-Z])[a-zA-Z0-9]{8,10}$ - 强密码(必须包含大小写字母和数字的组合,可以使用特殊字符,长度在8-10之间):^(?=.\d)(?=.[a-z])(?=.*[A-Z]).{8,10}$
- 日期格式:^\d{4}-\d{1,2}-\d{1,2}
- 腾讯QQ号:[1-9][0-9]{4,} (腾讯QQ号从10000开始)
- 中国邮政编码:[1-9]\d{5}(?!\d) (中国邮政编码为6位数字)