**正则表达式**
**正则表达式介绍**
注册页面需要将表单的数据提交给服务器,在js出现之前服务器拿到数据需要做校验,这样对服务器的负担比较重为了解决这个问题 出现了js
js出现后,将校验工作交给js去做了
正则表达式就是专门为了校验数据而产生的一个语法
除了可以校验数据,还可以提取一些想要的固定模式数据
还可以替换数据 - 替换字符串
正则表达式主要用于字符串的处理 -
正则表达式就是一个模式,可以用来校验、提取、替换数据
邮箱的写法和手机号码的写法不一样
每种数据都有自己的规则 - 正则表达式来描述这个规则 - 看数据是否满足这个规则
**正则表达式语法**
1.字面量形式直接创建
var reg=/写一些规则/
2.以构造函数的形式创建正则表达式
var reg=new RegExp()
**正则表达式的方法**
1.test 验证
正则表达式.test(被验证的数据)
2.search
字符串.search(正则表达式)
3.exec 提取
正则表达式.exec(被提取的数据)
字符串.match(正则表达式)
字符串.replace(正则表达式,新的内容)
**正则表达式的字符**
\d 代表任意一个数字 - [0-9]
\D 代表任意一个非数字
\w 代表任意一个数字、字母、下划线
\W 代表任意一个非数字、字母、下划线
. 代表任意一个字符
\s 代表任意一个空格
\S 代表任意一个非空格
{n} 表示这个字符要有n个
{n,m} 表示最少n位,最多m位 都能匹配到
{n,} 表示最少n位,少于n位就匹配不到,大于 n位都能匹配到
首尾的修饰符 - 修饰必须以谁开头,必须以谁结尾
开头的修饰符是 ^
结尾的修饰符是 $
[^ ] 取反
**案例**
电话号码
var reg = /^(\(0\d{2,3}\)|0\d{2,3}-)?([1-9]\d{6,7})$/