之前一贯对正则表达式一知半解,由于一样平常情形都没有利用。后来碰着须要利用正则表达式的地方,重新将正则表达式学习了一遍。下面的内容是我学习利用的一些心得。
一、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属性,返回正则表达式的润色符