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. 知道了数组的各项的意义,再看一些插件或库时,就不会一直蒙圈了。当然,我们也可以根据返回的匹配数据来自定义逻辑操作了。

 

转载于:https://www.cnblogs.com/chunyangji/p/5953418.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/417943.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

记事本和textarea中的换行

换行符:chr(13)&chr(10) php替换$notestr_replace(chr(13).chr(10),"<br>",$note);

mysql-bin_MySQL - binlog日志简介及设置

基本概念binlog是Mysql sever层维护的一种二进制日志&#xff0c;与innodb引擎中的redo/undo log是完全不同的日志&#xff1b;其主要是用来记录对mysql数据更新或潜在发生更新的SQL语句&#xff0c;记录了所有的DDL和DML(除了数据查询语句)语句&#xff0c;并以事务的形式保存…

关于webservice(CXF)的一些理解

CXF是apache下开源的webservice框架&#xff0c;CXF依赖spring进行集成&#xff0c;支持soap1.1&#xff0c;soap1.2,XML/HTTP,RESTful HTTP 或者CORBA; 使用jaxws来实现 SOAP1.1,1.2; 1.通过编程的方法来实现CXF发布使用接口 &#xff1b; A. 使用了jaxwsSeverFactoryBean 这…

vb 获取汉字拼音的首字母

vb 获取汉字拼音的首字母 Public Function py(mystr As String) As String i Asc(mystr) Select Case i Case -20319 To -20284: py "A" Case -20283 To -19776: py "B" Case -19775 To -19219: py "C" Case -19218 To -18711: py "D&…

mysql 使用索引_mysql使用索引的注意事项

使用索引的注意事项使用索引时&#xff0c;有以下一些技巧和注意事项&#xff1a;1.索引不会包含有NULL值的列只要列中包含有NULL值都将不会被包含在索引中&#xff0c;复合索引中只要有一列含有NULL值&#xff0c;那么这一列对于此复合索引就是无效的。所以我们在数据库设计时…

IIS问题

问题1&#xff1a;未启用父路径 症状举例&#xff1a; Server.MapPath() 错误 ASP 0175 : 80004005 不允许的 Path 字符 /0709/dqyllhsub/news/OpenDatabase.asp&#xff0c;行 4 在 MapPath 的 Path 参数中不允许字符 ..。 原因分析&#xff1a; 许多Web页面里要用到诸…

shape的简单用法

shap节点-----------------------------------定义shape的值&#xff0c;必须是下面的之一&#xff1a;"rectangle" 矩阵&#xff0c;这也是默认的shape"oval"    椭圆"line"     一条水平的直线。这种shape必须使用 <stroke> 元素…

mysql 存储过程 set into_mysql存储过程之创建(CREATE PROCEDURE)和调用(CALL)及变量创建(DECLARE)和赋值(SET)操作方法...

本文实例讲述了mysql存储过程之创建(CREATE PROCEDURE)和调用(CALL)及变量创建(DECLARE)和赋值(SET)操作方法。分享给大家供大家参考&#xff0c;具体如下&#xff1a;存储过程创建(CREATE PROCEDURE)和调用(CALL)这个咱就不说什么定义啦术语啦啥的&#xff0c;直接看着实例来慢…

bzoj2060[USACO2010,Nov]Visiting Cows拜访奶牛

题目链接&#xff1a;bzoj上是权限题~ 题目大意&#xff1a; 题解&#xff1a; 树型DP f[i][0]表示不选i&#xff0c;f[i][1]表示选i。(因为很水..就不详写了) 可列出方程&#xff1a; f[i][0]sigama(max(f[y][1],f[y][0])); f[i][1]sigama(f[y][0]); y为i的孩子 #include<c…

SQL中及Access的空值

在SQL中及Access有空值这个类型,不能直接用""去比较,即使是打开数据库要用以下字符串 select from * where filed is null 打开之后也必须有isnull(rs(" "))来判断.它的值是否为空. 所以只要涉及到数据为空的情况都应用isnull(rs(" "))来返回tru…

mysql修改engine_mysql下修改engine引擎的方法

修改my.ini&#xff0c;在[mysqld]下加上default-storage-engineINNODB其中红色字体部分是要指定的引擎名称。用sql语句修改已经建成表的引擎&#xff1a;alter table tableName typeInnoDB下面贴出我的my.ini文件供参考(http://www.my400800.cn)&#xff1a;[mysqld]basedirC:…

Controller的返回值

public String editItems(Model model) throws Exception {//itemsQueryVo参数如果没有的话 可以传一个null ItemsCustom items itemsService.findItemsById(1);model.addAttribute("items", items);return "items/editItems";} 1、返回String类型 表示返…

mysql保存plc数据_MySQL空间数据的保存

MySQL支持空间数据的存储&#xff0c;再做数据存储时&#xff0c;可以直接将数据转为WKT格式。WKT几何对象表示的示例(请注意,点坐标对以逗号分隔)&#xff1a;POINT(6 10)LINESTRING(3 4,10 50,20 25)POLYGON((1 1,5 1,5 5,1 5,1 1),(2 2,2 3,3 3,3 2,2 2))MULTIPOINT(3.5 5.6…

javascript event

event代表事件的状态&#xff0c;例如触发event对象的元素、鼠标的位置及状态、按下的键等等。 event对象只在事件发生的过程中才有效。 event的某些属性只对特定的事件有意义。比如&#xff0c;fromElement 和 toElement 属性只对 onmouseover 和 onmouseout 事件有意义。 例子…

如何让 C++ 和 C# 一样易用,而且效率更高?

&#xff08;未完成&#xff0c;待续。。&#xff09; 第一章&#xff1a;C基本功 1. 养成良好的编码习惯。 2. 堆上的资源随用随还&#xff0c;严格控制生命周期。 第二章&#xff1a;一些调试心得 1. 在VisualStudio环境下&#xff0c;曾出现 Detected memory leaks!&#xf…