正则的定义:就是一个规则,用来处理字符串的一条规则(正则就只能处理字符串)
//处理:
1)匹配:判断一个字符串是否符合我们制定的规则 -> test方法
var reg = /\d/ // 包含一个0~9之间的数字
console.log(reg.test('哈哈')) // -> false
console.log(reg.test('11')) // -> true
console.log(reg.test('哈哈1234')) // -> true
//2)捕获:把字符串中符合我们正则规则的内容捕获到 -> exec方法
var reg = /\d/ // 包含一个0~9之间的数字
console.log(reg.exec('哈哈')) // -> null
console.log(reg.exec('11')) // -> ['1',index:0,input:'1']
//如何创建一个正则
//字面量方式:
var reg=/\d/;
//实例创建方式:
var reg=new RegExp('');
//正则的两种创建方式是有区别的:
//3、如何学习正则:
//元字符:每一个正则表达式都是由元字符和修饰符组成的
//[元字符] -> 在//之间具有意义的一些字符
//1、具有特殊意义的元字符
\:转义字符,转译后面字符所代表的含义
^:以某一个元字符开始
$:以某一个元字符结束
.:除了\n以外的任意字符
var reg = /^0.2$/;->以0开头,以2结束,中间可以出了\n的任意字符
x|y:x或者y中的一个
[xyz]:x或者y或者z中的一个
[^xyz]:除了xyx三个以外的任何一个字符
[a-z]:a-z之间的任何一个字符
[^a-z]:除了a-z之间的任何一个字符
\d:一个0~9之间的数字 \D:除了0-9之间的数字以外的任何字符
\b:匹配一个边界符
\w:数字、字符、下划线中的任意一个字符 = [0-9a-z-A-Z_]
\s:匹配一个空白字符 空格、一个制表符、换页符
//2、代表出现次数的量词元字符
*:出现零到多次
+:出现一到多次
?:出现零次或者一次
{n}:出现n次
{n,}:出现n到多次
{n,m}:出现n到m次
var reg = /^\d+$/;
console.log(reg.test('2015')) //true
//一个简单的验证手机号的正则:11位数字,第一位是1
/^1\d{10}$/
():分组 ->把一个大正则本身划分成几个小的正则
作用:
1、改变x|y的默认的优先级
var reg = /^(\d+)hello(\d+)$/;
//元字符应用
//1、有效数字的正则:正数、负数、零、小数
//1、在中括号中出现的所有的字符都是代表本身意思的字符(没有特殊含义的 )
var reg = /^[+|-]?(\d|([1-9]\d+))(\.\d+)?$/
//4、正则创建方式的区别 -> 字面量方式和实例创建的方式
1、在字面量方式中,我们//之间包起来的所有的内容都是元字符,所以不能进行变量值的拼接,而实例创建的方式是可以进行变量的拼接
2、中括号中不识别两位数
var reg = /^[12]$/; //->1或者2中的一个
var reg=/^[12-68]$/; //->1或者2-6中的一个或者 8 三个数中的一个
2、字面量方式中直接写\d就可以了,而在实例中需要把它转译 \\d
eg:var name='zhufeng';
var reg = new RegExp("^\\d" + name + "\\d+$", "g");