概述
定义
正则表达式是对字符串和特殊字符操作的一种逻辑公式,就是用事先定义好的一些特定字符、及这些特定字符的组合,组成一个“规则字符串”,这个“规则字符串”用来表达对字符串的一种过滤逻辑。正则表达式是一种文本模式,该模式描述在搜索文本时要匹配的一个或多个字符串。
作用
判断输入的字符串是否符合规则,比如可以制作表单验证
特点
灵活性强,逻辑性和功能性非常强
可以迅速地使用极简单的方式达到字符串的复杂控制
入门时会觉得比较晦涩难懂
实际开发一般是复制写好的正则表达式,按照要求修改
使用
创建正则表达式
1.通过字面量来创建:var 变量名=/表达式/
// 1.利用字面创建 正则表达式
var rg = /123/;
console.log(rg); //123
2.利用RegExp对象来创建正则表达式
// 2.利用RegExp对象来创建正则表达式
var regexp = new RegExp(/123/);
console.log(regexp); //123
检测正则表达式的使用
test()
正则对象方法,用于检测字符串是否符合该规则,该对象会返回true和false,其参数是测试字符串
使用:
regexObj.test(str)
1.regexObj是写的正则表达式
2.str我们要测试的文本
3.检测str文本是否符合我们写的正则表达式规范
4、只要包含str的字符串,返回都是true
var rg = /123/;
console.log(rg.test('abc')); //false
console.log(rg.test('123')); //true
console.log(rg.test('112233')); //false
console.log(rg.test('11123333')); //true
边界符
边界符(位置符号)表示字符所处的位置
console.log(" ^============================== ");
var reg = /^abc/
console.log(reg.test('abcd')); //true
console.log(reg.test('abc')); //true
console.log(reg.test('aabc')); //false
console.log(" $============================== ");
var reg1 = /^abc$/
console.log(reg1.test('abcd')); //false
console.log(reg1.test('abc')); //true
console.log(reg1.test('aabc')); //false
console.log(reg1.test('abcabc')); //false
量字符
设定某个模式出现的次数
// * 相当于出现>=0 可以出现0次或者很多次
console.log('======*========');
var reg = /^a*$/;
console.log(reg.test('')); //true
console.log(reg.test('a')); //true
console.log(reg.test('aaa')); //true
// + 相当于出现>0 可以出现1次或者很多次
console.log('======+========');
var re = /^a+$/;
console.log(re.test('')); //false
console.log(re.test('a')); //true
console.log(re.test('aaa')); //true
// ? 相当于出现1||0 可以出现1次或者0多次
console.log('======?========');
var reg1 = /^a?$/;
console.log(reg1.test('')); //true
console.log(reg1.test('a')); //true
console.log(reg1.test('aaa')); //false
// {n} 重复n次
console.log('======{n}========');
var reg2 = /^a{3}$/; //重复3次
console.log(reg2.test('')); //false
console.log(reg2.test('a')); //false
console.log(reg2.test('aaa')); //true
console.log(reg2.test('aaaa')); //false
// {n,} 重复n次起步
console.log('======{n,}========');
var reg3 = /^a{3,}$/; //重复3次次起步
console.log(reg3.test('')); //false
console.log(reg3.test('a')); //false
console.log(reg3.test('aaa')); //true
console.log(reg3.test('aaaa')); //true
// {n,m} 重复n到m次起步
console.log('======{n,m}========');
var reg4 = /^a{3,5}$/; //重复3到5次
console.log(reg4.test('')); //false
console.log(reg4.test('a')); //false
console.log(reg4.test('aaa')); //true
console.log(reg4.test('aaaa')); //true
console.log(reg4.test('aaaaa')); //true
console.log(reg4.test('aaaaaa')); //false
预定义类
某些常见模式的简写方式
括号总结
1.中括号:字符集合, 匹配方括号中的任意字符
2.大括号:量字符, 里面表示重复次数
3.小括号 :表示优先级