正则表达式
正则表达式(RegExp)是Regular Expression缩写,是用于查找符合某些规则的字符串的工具。
正则表达式是一个描述字符模式的对象,当检索某个文本时,可以使用一种模式来描述要检索的内容,RegExp 就是这种模式。
正则表达式的创建方法
-
字面量创建 var re = /a/
-
字面量创建 var re = /a/
构造函数创建 var re = new RegExp(正则匹配内容,修饰符);
修饰符:
i 不区分大小写匹配
g 执行全局匹配
m 执行多行匹配
// 构造函数式
// var reg=new RegExp(pattern,attribute);
var reg1 = new RegExp('a','i');
// 字面量式
// var reg=/pattern/attribute;
var reg2 = /a/i;
上面两种创建方式所表达的内容是一致的,都是匹配字符串中的’a’,并且是忽略大小写的。
pattern:匹配模式。
attribute:匹配特征。
正则对象的属性和方法
正则对象的属性
global:全局的,对应修饰符g
ignoreCase:忽略大小写,对应修饰符i
multiline:多行,对应修饰符m
lastIndex:下一次匹配的字符位置
正则对象的属性
test():测试方法,用于测试一个字符串是否符合正则表达式对象所指定的模式规则,返回true或false
exec():搜索方法,用于在字符串中查找符合正则表达式对象所指定的模式的子字符串,返回找到的结果,若找不到则返回null
var str="Hela24lo Wor7A.l8ad!";
//判断是否包含字母a或A
var reg=/a/ig;
// 测试
console.log(reg.test(str));// true
//g表示全局匹配,会查找匹配多个符合条件的结果
console.log(reg.exec(str));
console.log(reg.lastIndex);
上面代码中,对于test方法的使用很容易理解。exec()方法配合"g"可以用来在符串多次匹配符合条件的内容,我们可以使用它来轻易的完成一个指定的字符串在大字符串中出现的次数。
正则表达式中的元字符
\s:匹配任何的空白字符
\S:任何非空白字符
\d:匹配一个数字字符,等价于[0-9]
\D:除了数字之外的任何字符,等价于[^0-9]
\w:匹配一个数字、下划线或字母字符,等价于[A-Za-z0-9_]
\W:任何非单字字符,等价于[^a-zA-z0-9_]
.:匹配除了换行符之外的任意字符
量词
{n}:匹配前一项n次
{n,}:匹配前一项至少n次
{n,m}:匹配前一项至少n次最多m次
*:匹配前一项至少0次最多无数次,{0,}
+:匹配前一项至少1次最多无数次,{1,}
?:匹配前一项最多1次,{0,1}
特殊符号
/…/:代表一个模式的开始和结束
^:匹配字符串的开始,即表示行的开始
$:匹配字符串的结束,即表示行的结束
[ ]:表示可匹配的列表
( ):用于分组
|:表示或者
[^ ]:在[ ]中的尖括号表示非
string对象的正则方法
- match
- search
- replace
- split