专栏首页一“技”之长JavaScript基础之七——JavaScript中的正则表达式

JavaScript基础之七——JavaScript中的正则表达式

JavaScript基础之七——JavaScript中的正则表达式

    正则表达式在前端开发中应用十分广泛,从表单验证到内容替换,正则多发挥着十分重要的作用。JavaScript中提供了专门的正则对象。

    在JavaScript中,有两种方式创建正则表达式,分别可以通过直接量语法来创建和RegExp对象来创建,示例如下:

var string = "Hello World123454321,{name:jaki,age:25}Hello,HELLO";
//使用直接量语法创建正则
console.log(string.match(/ello/g));//[ 'ello', 'ello' ]
//使用对象构造正则
var reg1 = new RegExp("ello","g");
console.log(string.match(reg1));//[ 'ello', 'ello' ]

使用直接量语法创建正则的模板如下:

/param/attri

其中param是正则表达式,attri为修饰参数,可以选择的有,i、g、m3个。i代表忽略大小写,g代表全局检索,m代表多行检索。

同样,使用RegExp对象的构造方法来构造正则对象也需要两个参数,第1个参数为正则表达式,第2个参数为修饰参数。

    正则表达式可以使用括号来进行范围查找,示例如下:

//i 表示忽略大小写 g表示全局搜索 m表示多行搜索
var reg2 = new RegExp("ello","igm");
console.log(string.match(reg2));//[ 'ello', 'ello', 'ELLO' ]
//[]内表示匹配范围内的某个字符
var reg3 = new RegExp("[abcd]","g");
console.log(string.match(reg3));
//前面加上^表示取反 匹配除了[]内的所有其他字符
var reg4 = new RegExp("[^abcd]","g");
console.log(string.match(reg4));
//进行范围匹配 如下只匹配数字
var reg5 = new RegExp("[0-9]","g");
console.log(string.match(reg5));
//进行范围匹配 如下只匹配英文字符
var reg6 = new RegExp("[a-z]","ig");
console.log(string.match(reg6));
//进行指定串的匹配
var reg7 = new RegExp("(123|hell)","ig");//[ 'Hell', '123', 'Hell', 'HELL' ]
console.log(string.match(reg7));

    在构造正则表达式时,也可以灵活的使用许多元字符,示例如下:

//元字符
//.元字符会比配任何字符 除了换行和行结束符
var reg8 = new RegExp("e.l","g");
console.log(string.match(reg8));
//x+用于匹配一个或多个x字符
var reg9 = new RegExp('l+',"g");
console.log(string.match(reg9));
//x*匹配0个或多个x字符
var reg10 = new RegExp('He*',"g");
console.log(string.match(reg10));
//x?匹配0个或1个x字符
var reg11 = new RegExp('He?',"g");
console.log(string.match(reg11));
//x{n}匹配有n个x字符
var reg12 = new RegExp('l{2}',"g");
console.log(string.match(reg12));
//x{n,m}匹配有n-m间个x字符
var reg13 = new RegExp('l{1,5}',"g");
console.log(string.match(reg13));
//x{n,}匹配至少有n个x字符
var reg14 = new RegExp('l{1,}',"g");
console.log(string.match(reg14));
//x$匹配以x结尾
var reg15 = new RegExp('O$',"g");
console.log(string.match(reg15));
//^x匹配以x开头
var reg15 = new RegExp('^H',"g");
console.log(string.match(reg15));

    关于RegExp对象,其中也封装了一些属性和方法,示例如下:

//获取是否有相应标志位
console.log(reg15.global);
console.log(reg15.ignoreCase);
console.log(reg15.multiline);
//检索字符串中正则匹配
console.log(reg15.exec(string));
//检测字符串是否匹配 会返回true或者false
console.log(reg15.test(string));

前端学习新人,有志同道合的朋友,欢迎交流与指导,QQ群:541458536

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • JavaScript基础之三——基本运算符 原

        大多数语言支持的基本运算符都差别不大。其中最常用的莫属赋值运算符,编程初学者总是会将赋值运算符与相等运算符混淆,需要注意,赋值运算符用于将等号右侧的值赋...

    珲少
  • iOS原生地图开发指南续——大头针与自定义标注

    在上一篇博客中http://my.oschina.net/u/2340880/blog/415360系统总结了iOS原生地图框架MapKit中主体地图的设置与应...

    珲少
  • iOS网络编程之一——iOS网络框架简介 原

            通过网络,一款应用才能够内容丰富,才能够完成用户操作与后台数据的交互。网络编程是移动应用或游戏开发开发中不可缺少的技术。iOS原生的网络框架也十...

    珲少
  • python输入,格式化输入,以及sca

    在Python里,没有与scanf()直接等同的功能函数,因此需要格式化输入,就需要使用正则表达式的功能来实现,并且正则表达式的功能比scanf()更加灵活,功...

    py3study
  • warning: a non-numeric value encountered in line *的解决方法

    在调试项目的时候出现了一个警告warning: a non-numeric value encountered in line 694,查看php官方文档,上面...

    ytkah
  • JS入门之运算符

    和别的脚本语言一样,js也有自己的运算符,js的运算符一共有6种,具体示例如下:

    邂逅千寻
  • js得到当前页面的url信息

    所有的代码都是可用,而且附了图片的,不过是直接用我自己的文章地址,所以有些显示的有点奇怪。

    ydymz
  • 究竟什么样的开发流程是规范的?

    遇到以上问题,肯定是在参加需求评审之前未做充分准备,那么问题来了,需要提前准备什么?

    新亮
  • 鹅厂还你钢铁侠,瞬加地球复活字段!

    点击上方蓝字每天学习数据库 复联4在中国全球首映圆了无数漫威迷的梦,据说不少歪果仁飞十几小时来中国,只为提前一睹Avengers的华丽谢幕。可能中文字幕确实看...

    腾讯云数据库 TencentDB
  • C++那些事之轻松解析json

    本节推荐一个解析json的库,之前推荐过解析xml,未来将会推荐更多,帮助大家解读常用语法。

    公众号guangcity

扫码关注云+社区

领取腾讯云代金券