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. 知道了数组的各项的意义,再看一些插件或库时,就不会一直蒙圈了。当然,我们也可以根据返回的匹配数据来自定义逻辑操作了。
RegExp类型exec()方法的返回值说明的更多相关文章
- Java使用对象类型作为方法的返回值
- MVC方法的返回值类型
MVC方法返回值类型 ModelAndView返回值类型: 1.当返回为null时,页面不跳转. 2.当返回值没有指定视图名时,默认使用请求名作为视图名进行跳转. 3.当返回值指定了视图名,程序会按照 ...
- Controller方法的返回值
方法的返回值1.ModelAndView这个就不多说,这是最基础的,前面定义一个ModelAndView,中途使用addObject方法添加属性,再返回.视图解析器会自动扫描到的.2.String这个 ...
- SSM-SpringMVC-21:SpringMVC中处理器方法之返回值Object篇
------------吾亦无他,唯手熟尔,谦卑若愚,好学若饥------------- 今天要记录的是处理方法,返回值为Object的那种,我给它分了一下类: 1.返回值为Object数值(例如1) ...
- Java反射机制二 获取方法的返回值或参数的泛型信息
在使用反射机制时,我们经常需要知道方法的参数和返回值类型,很简单 ,下面上示例,示例中的两个方法非常相似 package deadLockThread; import java.lang.refle ...
- 7 -- Spring的基本用法 -- 10... 获取其他Bean的属性值;获取Field值;获取任意方法的返回值
7.10 高级依赖关系配置 组件与组件之间的耦合,采用依赖注入管理:但基本类型的成员变量值,应直接在代码中设置. Spring支持将任意方法的返回值.类或对象的Field值.其他Bean的getter ...
- 11.SpringMVC注解式开发-处理器方法的返回值
处理器方法的返回值 使用@Controller 注解的处理器的处理器方法,其返回值常用的有四种类型 1.ModelAndView 2.String 3.void 4.自定义类型对象 1.返回Model ...
- STL—— 容器(vector)数据插入insert()方法 的返回值
vector 容器下的 insert() 方法拥有返回值,由于insert() 方法拥有4种重载函数,他的返回值不尽相同. 第一种,插入单个元素后的返回值: 1 #include <iostre ...
- PHP方法的返回值
不仅是PHP,大部分编程语言的函数或者叫方法,都可以用return来定义方法的返回值.从函数这个叫法来看,本身它就是一个计算操作,因此,计算总会有个结果,如果你在方法体中处理了结果,比如进行了持久化保 ...
随机推荐
- Event的Propagate
SSIS Package的Executable存在层次结构,例如Package位于层次结构的最顶层,Root Level:Container是其中包含的Executable(Task 或 Contai ...
- SQL Server 通过备份文件初始化复制
一.本文所涉及的内容(Contents) 本文所涉及的内容(Contents) 背景(Contexts) 搭建过程(Process) 注意事项(Attention) 疑问(Questions) 参考文 ...
- OPEN CASCADE Multiple Variable Function
OPEN CASCADE Multiple Variable Function eryar@163.com Abstract. Multiple variable function with grad ...
- OPEN CASCADE Curve Continuity
OPEN CASCADE Curve Continuity eryar@163.com Abstract. 设计一条复杂曲线时,出于设计和制造上的考虑,常常通过多段曲线组合而成,这就需要解决曲线段之间 ...
- Android中Path类的lineTo方法和quadTo方法画线的区别
转载:http://blog.csdn.net/stevenhu_223/article/details/9229337 当我们需要在屏幕上形成画线时,Path类的应用是必不可少的,而Path类的li ...
- 创建 VXLAN - 每天5分钟玩转 OpenStack(111)
前面我们讨论了 VXLAN 的理论知识,并且在 ML2 中完成了相关配置.今天将通过 Web UI 创建 vxlan100_net 并观察节点网络结构的变化. 打开菜单 Admin -> Net ...
- 窥探Swift之数组安全索引与数组切片
今天是元宵节,祝大家元宵节快乐!在Swift中的数组和字典中下标是非常常见的,数组可以通过索引下标进行元素的查询,字典可以通过键下标来获取相应的值.在使用数组时,一个常见的致命错误就是数组越界.如果在 ...
- 关于纠正 C/C++ 之前在函输内改变 变量的一个错误想法。
再这之前,我曾认为,一个变量只要定义为全局变量后,即使把它以传参的方式传进去一个函数内,也能改变它的值 事实证明,这一想法是错的. 下面我用代码说明,具体注释将写在里面 #include<std ...
- 使用普通用户替代root来管理IEE
环境:RHEL 6.4 + IEE 4.0.6 需求:IEE数据库之前是使用root用户部署和管理的,现在安全加固,将数据库交给普通用户iee来管理. 一.当前环境 二.安全加固 1.创建iee用户 ...
- Java中读文件操作
InputStream & Reader InputStream(字节流),如下是InputStream的层次结构: AudioInputStream:音频输入流类,该方法可以: 从外部音频文 ...