JS基础知识(十一):正则表达式

文章目录

一、创建正则表达式

var box=new RegExp(‘box’); //第一个参:正则表达式的主体-字符串
var box=new RegExp(‘box’, ‘ig’); //第二个参数:修饰符
var box=RegExp(‘box’, ‘ig’); //直接省略new也可以
var box=/box/; //直接用两个反斜杠
var box=/box/ig; //在第二个斜杠后面加上模式修饰符
JS基础知识(十一):正则表达式

二、正则表达式对象的方法

JS基础知识(十一):正则表达式

2.1 test方法

/*使用 new 运算符的 test 方法示例*/
var pattern= new RegExp('box', 'i'); //创建正则模式,不区分大小写
var str ='This is a Box!'; //创建要比对的字符串
alert(pattern.test(str)); //通过 test()方法验证是否匹配

/*使用字面量方式的 test 方法示例*/
var pattern= /box/i; //创建正则模式,不区分大小写
var str ='This is a Box!';
alert(pattern.test(str));
/*使用一条语句实现正则匹配*/
alert(/box/i.test('This is aBox!')); //模式和字符串替换掉了两个变量

2.2 exec方法

/*使用 exec 返回匹配数组,返回匹配到的串,匹配成功,返回一个装有字符串的数组,匹配失败,返回null*/
var pattern= /box/i;
var str ='This is a Box!';
alert(pattern.exec(str)); //匹配了返回数组,否则返回 null 

三、字符串中使用正则表达式

除了 test()和 exec()方法,String 对象也提供了 4 个使用正则表达式的方法

JS基础知识(十一):正则表达式

字符串的函数:
match()
    格式:字符串.match(正则)
    功能:在字符串匹配是否有符合正则表达式,
    返回值:匹配成功,返回装有匹配到子串的数组
            匹配失败,返回null
replace()
    格式:字符串.replace(oldStr/正则, newStr);
    功能:用newStr将oldStr替换,
    返回值:替换成功的新字符串。
split()
    格式:字符串.split(分割符/正则);
    功能:用分割符将原字符串进行分割
    返回值:分割剩下的子串组成的数组。

search()
    格式:字符串.search(子串/正则)
    功能:找到符合条件的子串第一次出现的位置
    返回值:
        如果找到,返回>=0的下标
        否则,返回-1
/*使用 match 方法获取获取匹配数组*/
var pattern= /box/ig; //全局搜索,不加i,匹配一个box就会结束
var str ='This is a Box!,That is a Box too';
alert(str.match(pattern)); //匹配到两个 Box,Box alert(str.match(pattern).length); //获取数组的长度

/*使用 search 来查找匹配数据*/
var pattern= /box/ig;
var str ='This is a Box!,That is a Box too';
alert(str.search(pattern)); //查找到返回位置,否则返回-1
//PS:因为 search 方法查找到即返回,也就是说无需 g 全局。

/*使用 replace 替换匹配到的数据,返回一个新的str*/
var pattern= /box/ig;
var str ='This is a Box!,That is a Box too'; 
alert(str.replace(pattern,'Tom')); //将 Box 替换成了 Tom

/*使用 split 拆分成字符串数组*/
var pattern= //ig;
var str ='This is a Box!,That is a Box too';
alert(str.split(pattern)); //将空格拆开分组成数组

四、元字符(编写正则表达式)

正则表达式元字符是包含特殊含义的字符。它们有一些特殊功能,可以控制匹配模式的方式。单个字符: 只能匹配一个位置的字符

元字符:在正则表达式中有特殊含义的字符。
单个数字和字符的元字符
    .               匹配单个的任意字符
    [范围]          匹配单个范围内的字符
    [0-9]          匹配单个范围内的数字
    [a-zA-Z0-9_]   匹配单个的数字、字母下划线
    [^范围]        匹配任意一个除括号范围内的字符
    [^0-9]         匹配任意一个非数字字符
    \w             匹配单个的数字、字母下划线  等价于 [a-zA-Z0-9_]
    \W             匹配单个非数字、字母下划线
    \d             匹配单个数字  等价于 [0-9]
    \D             匹配单个非数字  等价于 [^0-9]
空白字符
    \s   匹配任意单个的空白字符
	\S   匹配任意单个非空白字符

重复字符  x(任意的单个字符)
    x?    匹配0个或者1个x
    x+    匹配至少一个x字符
    x*    匹配任意个x字符
    x{m,n}匹配至少m个,最多n个x字符,包括n
    x{n}  必须匹配n个x字符
    (xyz)+ 小括号括起来的部分是当做单个字符处理
锚字符
    ^  行首匹配  必须以这个正则开头
    $  行尾匹配  必须以这个正则结尾

JS基础知识(十一):正则表达式
JS基础知识(十一):正则表达式
JS基础知识(十一):正则表达式
JS基础知识(十一):正则表达式
JS基础知识(十一):正则表达式

五、常用正则

上一篇:【java】正则表达式


下一篇:通过正则表达式提取字符串信息