JavaScript中的正则表达式

发布时间:2018年10月12日作者:yafei浏览次数:702

  • 正则表达式零起步
    • 创建正则表达式对象

①使用两个斜杠:var reg = /a/;类似创建数组可以使用[]、创建对象可以使用{}

②new RegExp(“a”);类似创建数组可以new Array()、创建对象可以使用new Object()

  • 正则表达式本身也是一个字符串,这个字符串由两种字符组成:

①普通字符,例如大、小写英文字母;数字等。

②元字符:被系统赋予特殊含义的字符。例如:^表示以某个字符串开始,$表示以某个字符串结束。

  • 正则表达式初体验

①模式验证

//创建一个最简单的正则表达式对象

var reg = /o/;

//创建一个字符串对象作为目标字符串

var str = ‘Hello World!’;

//验证目标字符串是否满足我们指定的这个模式,返回结果true

document.write(“/o/.test(‘Hello World!’)=”+reg.test(str));

②匹配读取

//在目标字符串中查找匹配的字符,返回匹配结果组成的数组

var resultArr = str.match(reg);

//数组长度为1

document.write(“resultArr.length=”+resultArr.length);

document.write(“<br />”);

//数组内容是o

document.write(“resultArr[0]=”+resultArr[0]);

③替换

var newStr = str.replace(reg,’@’);

//只有第一个o被替换了,说明我们这个正则表达式只能匹配第一个满足的字符串

document.write(“str.replace(reg)=”+newStr);//Hell@ World!

document.write(“<br />”);

//原字符串并没有变化,只是返回了一个新字符串

document.write(“str=”+str);//str=Hello World!

 

  • 匹配方式

①全文查找

如果不使用g对正则表达式对象进行修饰,则使用正则表达式进行查找时,仅返回第一个匹配;使用g后,返回所有匹配。

//目标字符串

var targetStr = ‘Hello World!’;

 

//没有使用全局匹配的正则表达式

var reg = /[A-Z]/;

//获取全部匹配

var resultArr = targetStr.match(reg);

//数组长度为1

document.write(“resultArr.length=”+resultArr.length);

document.write(“<br />”);

//遍历数组,发现只能得到’H’

for(var i = 0; i < resultArr.length; i++){

document.write(“resultArr[“+i+”]=”+resultArr[i]);

document.write(“<br />”);

}

 

//使用全局匹配的正则表达式

var reg = /[A-Z]/g;

//获取全部匹配

var resultArr = targetStr.match(reg);

//数组长度为2

document.write(“resultArr.length=”+resultArr.length);

document.write(“<br />”);

//遍历数组,得到’H’和’W’

for(var i = 0; i < resultArr.length; i++){

document.write(“resultArr[“+i+”]=”+resultArr[i]);

document.write(“<br />”);

}

 

②忽略大小写

//目标字符串

var targetStr = ‘Hello WORLD!’;

 

//没有使用忽略大小写的正则表达式

var reg = /o/g;

//获取全部匹配

var resultArr = targetStr.match(reg);

//数组长度为1

document.write(“resultArr.length=”+resultArr.length);

document.write(“<br />”);

//遍历数组,仅得到’o’

for(var i = 0; i < resultArr.length; i++){

document.write(“resultArr[“+i+”]=”+resultArr[i]);

document.write(“<br />”);

}

 

//使用忽略大小写的正则表达式

var reg = /o/gi;

//获取全部匹配

var resultArr = targetStr.match(reg);

//数组长度为2

document.write(“resultArr.length=”+resultArr.length);

document.write(“<br />”);

//遍历数组,得到’o’和’O’

for(var i = 0; i < resultArr.length; i++){

document.write(“resultArr[“+i+”]=”+resultArr[i]);

document.write(“<br />”);

}

 

③多行查找

//目标字符串1

var targetStr01 = ‘Hello\nWorld!’;

//目标字符串2

var targetStr02 = ‘Hello’;

 

//匹配以’Hello’结尾的正则表达式,没有使用多行匹配

var reg = /Hello$/;

document.write(reg.test(targetStr01));//false

document.write(“<br />”);

document.write(reg.test(targetStr02));//true

 

//匹配以’Hello’结尾的正则表达式,使用多行匹配

var reg = /Hello$/m;

document.write(reg.test(targetStr01));//true

document.write(“<br />”);

document.write(reg.test(targetStr02));//true

 

 


上一篇:
下一篇:
相关课程

java培训 大数据培训 前端培训 UI/UE设计培训

关于尚硅谷
教育理念
名师团队
学员心声
资源下载
视频下载
资料下载
工具下载
加入我们
招聘岗位
岗位介绍
招贤纳师
联系我们
全国统一咨询电话:010-56253825
地址:北京市昌平区宏福科技园2号楼3层(北京校区)

深圳市宝安区西部硅谷大厦B座C区一层(深圳校区)

上海市松江区谷阳北路166号大江商厦6层(上海校区)

武汉市东湖高新开发区东湖网谷(武汉校区)