RegExp类型exec()方法的返回值说明

之前看人家写的插件经常会面因此到RegExp对象来证实输入,并且得到有当场自己连无知晓是呀东西的屡屡组,来取值进行由定义的逻辑处理。今天习了转RegExp类型。终于生出了一个起来的了解,至少不会见看一样会晤便觉得蒙圈了,记录分享一下

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

语法如下 

var expression =  /pattern / flags;

里面 pattern 部分是正则表达式。 flags
部分据此来表明正则表达式的所作所为,正则表达式的相当模式支持一下3种植:

 g:表示全局模式,即模式将让使用被所有字符串,而非以意识第一个门当户对配项时立刻停下。

 i:表示未分轻重缓急写。

m:表示多实践模式,级在到达一行文本末尾时还见面连续搜寻下一行中是否是鱼模式匹配的项。

推个栗子:

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 ,对应的职
是16);

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

于频繁组吃,

先是码:表示和普模式匹配的字符串
(上面代码中之 short 匹配 正则校验);

外项:
与模式被的捕获组匹配的字符串(如果模式中莫捕获组,则该数组只含有一起)

   上述代码匹配模式被隐含两只捕获组。第一独为(..),对许捕获的字符为
sh;第二个吗(.),对应的抓获字符为 t。

okay.
知道了多次组的各项的义,再看有些插件或库时,就无见面一直蒙圈了。当然,我们啊堪依据返回的配合数据出自定义逻辑操作了。