RegExp类型exec()方法的重返值表明

事先看旁人写的插件日常会用到RegExp对象来评释输入,并且取得一些当下自身并不知晓是什么东西的数组,来取值举行自定义的逻辑处理。前几日上学了一下RegExp类型。终于有了1个上马的打听,至少不会看一会就感到蒙圈了,记录分享一下

ECMAScript通过RegExp类型来支撑正则表达式

语法如下 

var expression =  /pattern / flags;

其间 pattern 部分是正则表明式。 flags
部分用来阐明正则表明式的行为,正则表达式的相称方式辅助一下三种:

 g:表示全局格局,即情势将被运用于具有字符串,而非在意识第3个相称项时霎时截至。

 i:表示不区分轻重缓急写。

m:表示多行格局,级在到达一行文本末尾时还会两次三番寻找下1行中是还是不是留存鱼情势相称的项。

举个栗子:

var pattern1= /at/g;  //匹配字符串中所有"at"的实例

var pattern2 = /[bc]at/i; //匹配第一个"bat"或"cat",不区分大小写

问询了正则的语法,上边说一下RegExp实例,上代码表达呢

var pattern = new RegExp("\\[bc\\]at","i");  //创建正则实例

alert(pattern.global);  //false 是否设置全局标识
alert(pattern.ignoreCase); //true  是否不区分大小写
alert(pattern.multiline);  //false 是否设置多行标识
alert(pattern.lastIndex);  //0 表示开始搜索下一个匹配项的字符位置,从0算起
alert(pattern.source);  //"\[bc\]at" 返回按照字面量形式而非传入构造函数中的字符串模式

如上,基本上大家就提到输入的正则表明式和标志符就足以了。上面就是自小编在此以前线总指挥部蒙圈的事物了。终于弄精通都代表了如何,依然代码表达

var text ="this has been a short summer";
var pattern =/(..)or(.)/g;

var matches=pattern.exec(text);
console.log(matches.index);   // 16
console.log(matches.input);   // this has been a short summer
console.log(matches[0]);  // short
console.log(matches[1]);   // sh
console.log(matches[2]);    // t

上边解释一下

exec()接受三个参数,即要应用形式的字符串,然后回来蕴含第贰个门户差不离项新闻的数组;只怕在未曾相称项的景况下回到null.

回到的数组是Array实例,但含有五个附加的性质:
index 和 input。

其中,

index
代表相称项在字符串中的地方。(下边代码相称项为 short ,对应的职务是1陆);

input
代表应用正则表达式的字符串。(上边代码的 text变量的值 this has been a
short summer);

在数组中,

第1项:表示与一切格局匹配的字符串
(上边代码中的 short 相配 正则校验);

此外项:
与形式中的捕获组相配的字符串(如果情势中未有捕获组,则该数组只蕴含一项)

   上述代码相配格局中包涵五个捕获组。第二个为(..),对应捕获的字符为
sh;第3个为(.),对应的捕获字符为 t。

okay.
知道了数组的各个的意思,再看有的插件或库时,就不会向来蒙圈了。当然,大家也可以依照重临的相配数据来源定义逻辑操作了。