1.正则表达式的定义
正则表达式是由一个字符序列形成的搜索模式,用来匹配。
当在文本中搜索数据时,可以使用搜索模式来描述查询内容。
其可以是一个简单的字符,或者一个更复杂的模式。
2.正则表达式的创建
(1)字面量
var reg1=/abc/g;//g:全局 匹配一个字符串中是否含有abc
(2)new关键字 构造函数
var rge2=new RegExp('表达式','修饰符');
var rge2=new RegExp('abc','g');
3.正则表达式的方法
(1)constructor:对创建正则表达式对象的函数的应用
console.log(reg1.constructor);
(2)prototype 向对象添加属性和方法
console.log(reg1.prototype);
var str1='abcabcabc';
(3).exec()检索字符串中指定的值,返回找到的值并确定其位置
console.log(reg1.exec(str1));
(4)test()检索字符串中指定的值,返回true或false
console.log(reg1.test(str1));
(5)toString()返回正则表达式的字符串
console.log(reg1.toString());
4.正则表达式的修饰符
(1)i 忽略大小写
var reg2=/aBc/i;
console.log(reg2.test(reg1));
(2)g 全局匹配
var str='abcabdabd'
var reg3=/a/g;
console.log(str.replace(reg3,'H'));
(3)m 多行匹配
var str1='abc \n dfwlcnwi';
var reg4=/c/gm;
console.log(str1.replace(reg4,'A'));
5.正则表达式的属性
(1)constructor 对创建正则表达式对象的函数的应用
console.log(reg1.constructor);
(2) prototype 向对象添加属性和方法 原型
console.log(RegExp.prototype);
(3) global 判断是否设置了 "g" 修饰符
(4)ignoreCase 判断是否设置了 "i" 修饰符
(5)multiline 判断是否设置了 "m" 修饰符
(6)source 返回正则表达式的匹配模式 表达式
console.log(reg1)
console.log(reg1.source)
(7) lastIndex 用于规定下次匹配的起始位置
var str="abcabcabc";
console.log(reg1.test(str));
6.正则表达式的模式之范围
(1) [字符族] 查找每个范围内的字符
var reg1=/acb/;
console.log(reg1.test("abcdefg"));//false
1` [abc] 查找[]之间的任何字符
var reg2=/[acb]/;
console.log(reg2.test("a"));//true
console.log(reg2.test("ab"));//true
console.log(reg2.test("abdhehekeku"));//true
2` [^abc] 查找任何不在[]之间的字符。 排除
var reg3=/[^acb]/;
console.log(reg3.test("a"));//false
console.log(reg3.test("acb"));//fasle
console.log(reg3.test("gghkyunguym,jkyuh"));//true
(2) [0-9] 查找任何从 0到9的数字
var reg4=/[0-9]/;
console.log(reg4.test("6"));//true
(3)[a-z] 查找任何从小写 a 到 小写 z的字符
(4)[A-Z] 查找任何从大写 A 到 大写 Z的字符
(5)[A-z] 查找任何从大写 A 到 小写 z的字符
(6) (red|green|blue) 查找指定的选项 或
7.正则表达式的模式之元字符
查找单个字符,除了换行和行结束符以外的任意字符
var reg1=/./;
console.log(reg1.test("abcdefg"));//true
console.log(reg1.test("\n"));//false
(1) \w 查找数字、字母及下划线。
(2)\W 查找非单词字符。
var reg2=/\w/;
var reg2=/\W/;
console.log(reg2.test("hagag0393838_"));//true
console.log(reg2.test("隔壁老王"));//false
(3) \d 查找数字。
(4) \D 查找非数字字符。
(5) \s 查找空白字符。
(6) \S 查找非空白字符。
(7) \b 匹配单词边界。
(8) \B 匹配非单词边界。
(9) \0 查找 NULL 字符。
(10) \n 查找换行符。
(11) \f 查找换页符。
(12) \r 查找回车符。
(13) \t 查找制表符。
(14) \v 查找垂直制表符。
(15) \xxx 查找以八进制数 xxx 规定的字符。
(16) \xdd 查找以十六进制数 dd 规定的字符。
(17) \uxxxx 查找以十六进制数 xxxx 规定的 Unicode 字符。
8.正则表达式的模式之量词
(1)n{X} 匹配包含 X 个 n(连续) 的序列的字符串
var reg1=/a{2}/;
console.log(reg1.test("a"));//true
console.log(reg1.test("aa"));//true
console.log(reg1.test("aba"));//fasle
(2)n{X,Y} X 和 Y 为正整数,前面的模式 n 连续出现至少 X 次,至多 Y 次时匹配
var reg2=/a{1,3}/;
console.log(reg2.test("a"));//true
console.log(reg2.test("aa"));//true
console.log(reg2.test("aaa"));//true
console.log(reg2.test("aaaa"));//false
(3)n{X,} X 是一个正整数。前面的模式 n 连续出现至少 X 次时匹配
(4)n+ 匹配任何包含至少一个 n 的字符串。 n{1,}
(5) n* 匹配任何包含零个或多个 n 的字符串。 n{0,}
(6) n? 匹配任何包含零个或一个 n 的字符串。 n{0,1}
9.正则表达式的模式之定位符
(1) n$ 匹配任何结尾为 n 的字符串
var reg1 = /abc$/; //匹配以abc结尾的字符串
console.log(reg1.test("abcabc"));
(2)^n 匹配任何开头为 n 的字符串
var reg2 = /^abc/; //匹配以abc开头的字符串
console.log(reg2.test("cabcabc"));
(3)?=n 匹配任何其后紧接指定字符串 n 的字符串。
(4)?!n 匹配任何其后没有紧接指定字符串 n 的字符串。