什么是正则表达式?
正则表达式(regular expression)描述了一种字符串匹配的模式(pattern),可以用来检查一个串是否含有某种子串、将匹配的子串替换或者从某个串中取出符合某个条件的子串等。
基本概念:
字符串匹配,查询,替换的一种模式,外表风骚,功能强大。
正则的创建方法:
字面量方式
var rep = /^1[34578]\d{9}$/
构造函数形式
var rep = new RegExp("表达式","修饰符")
//比如下面匹配一个手机号
var rep = new RegExp("^1[34578]\d{9}$");
JS 字符串中可以使用正则表达式的三个函数
string.replace("正则表达式","要替换的对象")
string.match("正则表达式")
string.search("正则表达式")
test方法(用来验证)
var rep = /正则表达式/g
rep.test(要验证的字符串); //结构返回true或者false
exec方法(用来验证)
var rep = /正则表达式/g
rep.test(要验证的字符串) //结构返回true或false
常用的元字符:
[abc] //匹配方框号中的任意一个字符
[^abc] //除了abc以外的所有的字符
[0-9] //匹配0-9之间数字
[a-z] //匹配所有的大写字母
[0-9a-zA-Z] //匹配大小写字母和数字
[A-z] //匹配所有的大小写字母 [A-Za-z]
(红色|蓝色|绿色) //匹配红色,蓝色绿色
[\u4e00-\u9fa5] //中文汉字
. //匹配任意字符
\w //匹配任意字母数字下划线 或 [A-Za-z0-9_]
\W //匹配非字母数字下划线
\d //匹配所有数字 [0-9]
\D //匹配非数字
\s //匹配空格字符
\S //匹配非空格字符
常用的正则
1.只能是中文 长度为2-7位
/^([\u4e00-\u9fa5]){2,7}$/
2.长度为8到18位的小写大写字母或数字或下划线 【重要】
/^[a-zA-Z0-9_]{8,18}$/
3.正确的邮箱格式 【重要】
/^\w+@[a-z0-9]{2,5}\.(com|cn|net|org)$/
/^[A-z0-9_-]+@[a-z0-9]{2,5}\.[a-z]{2,3}$/
4.正确的手机号【重要】
/^1(3|4|5|7|8)\d{9}$/
5.正确的身份证号:
/^\d{15}|\d{17}([0-9]|x)/
/^[1-9][0-9]{16}[0-9x]$/
6.正确的qq号
/[1-9][0-9]{4,}/
7.正确的电话号码格式 【重要】
/^0[0-9]{2}-[0-9]{8}|0[0-9]{3}-[0-9]{7}$/
8. 过滤空白 /\s+/g
9. 匹配任意8-18之间的大小写字母数字构成的密码
/^(?=.*[a-z])(?=.*[A-Z])(?=.*\d)[a-zA-Z\d]{8,18}$/