龙空技术网

ES6之正则扩展

前端唠唠嗑 147

前言:

目前同学们对“php正则修饰符”可能比较关注,大家都需要分析一些“php正则修饰符”的相关文章。那么小编也在网络上搜集了一些对于“php正则修饰符””的相关知识,希望朋友们能喜欢,你们快快来了解一下吧!

之前一直对正则表达式一知半解,因为一般情况都没有使用。后来遇到需要使用正则表达式的地方,重新将正则表达式学习了一遍。下面的内容是我学习使用的一些心得。

一、ES6之前的正则表达式

正则简单的理解就是一个搜索条件,计算机根据正则这个限定的搜索条件搜索需要的内容。其应用十分广泛,使用的编程语言也十分多,例如C,Python,js,Java,PHP等等。下面我们只讨论在js中的应用。

1 JavaScript RegExp 对象

正则表达式在js中是集成在RegExp对象中的,我们只需要搞清楚这个对象的属性和方法即可。

1.1 创建RegExp对象

要在js中使用正则表达式,我们需要先创建一个RegExp对象。

var patt=new RegExp(pattern,modifiers);// 或者更简单的方式:var patt=/pattern/modifiers;

如上面代码所示,我们是用来两种方法创建RegExp对象,其效果是一样的,在使用的时候任选一种即可。其中pattern(模式) 描述了表达式的模式,modifiers(修饰符) 用于指定全局匹配、区分大小写的匹配和多行匹配,创建的patt对象可以看成一个筛选条件。

1.1.1 pattern(模式)

此部分是表达式部分,限定筛选的条件。此部分是重点,需要记忆的内容比较多。这里只简要说明一些规则

1.1.2 modifiers(修饰符)

修饰符限定筛选范围,取值只有三种,分别代表的含义如下表

修饰符描述i执行对大小写不敏感的匹配。g执行全局匹配(查找所有匹配而非在找到第一个匹配后停止)。m执行多行匹配。

1.2 使用RegExp对象(RegExp对象方法)

以下面代码为例,更好的理解其使用

var str = "hello world"var patt = /l/gvar execResult = patt.exec(str) // lvar testResult = patt.test(str) // truevar toStringResult = patt.toString() // /l/g

1.3 外部使用

这部分使我们的应用重点,主要用于string对象

废话不多说,上代码

var str = "hello world"var patt = /l/gvar searchResult = str.search(patt) //2var matchResult = str.match(patt) //["l","l","l"]var replaceResult = str.replace(patt,'a') //heaao woradvar splitResult = str.split(patt) //["he","","0 wor","d"]

1.4 RegExp对象相关属性

二、ES6正则扩展

1 创建方式变化

ES5中创建RegExp对象有以下三种方法

var patt = new RegExp("abc","i")var patt = new RegExp(/abc/i)var patt =/abc/i

其中使用第二种方法时后面不允许在加修饰符参数,ES6中允许了这一操作,后面的修饰符参数会覆盖原有的修饰符

2 新增方法

原来string对象的四个方法 match() 、 replace() 、 search() 和 split()添加到了RegExp对象对象上,其实在使用上没有区别。

3 新增修饰符

4 新增属性

新增sticky属性,判断是否设置了y修饰符;新增flag属性,返回正则表达式的修饰符

标签: #php正则修饰符