关于JS中match() 和 exec() 返回值和属性的测试
语法:
exec() : RegExpObject.exec(string) match() : stringObject.match(string) stringObject.match(regexp)
知识点:
exec() 是RegExp对象的方法,而 match() 是String对象的方法。
都会返回包含第一个匹配项信息的数组;或者在没有匹配项的情况下返回null。
返回的数组虽然是Array 的实例,但包含两个额外的属性:index 和 input。其中,index 表示匹配项在字符串中的位置,而 input 表示应用正则表达式的字符串。
在数组中,第一项是与整个模式匹配的字符串,其他项是与模式中的捕获组匹配的字符串(如果模式中没有捕获组,则该数组只包含一项)。
测试:
对 match() 的测试代码:
var text = "mom and dad and baby"; var pattern = /(mom and )?(dad and )?baby/; var matches = text.match(pattern);//pattern.exec(text); console.log(matches.index); console.log(matches.input); console.log(matches[0]); console.log(matches[1]); console.log(matches[2]);
对 match() 的测试结果截图:
对 exec() 的测试代码:
var text = "mom and dad and baby"; var pattern = /(mom and )?(dad and )?baby/; var matches = pattern.exec(text);//text.match(pattern); console.log(matches.index); console.log(matches.input); console.log(matches[0]); console.log(matches[1]); console.log(matches[2]);
对 exec() 的测试结果截图:
String 对象方法
方法 | 描述 |
exec | 检索字符串中指定的值。返回找到的值,并确定其位置 |
test | 检索字符串中指定的值。返回 true 或 false。 |
String 对象方法
方法 | 描述 |
match() | 找到一个或多个正则表达式的匹配。 |
replace() | 替换与正则表达式匹配的子串。 |
search() | 检索与正则表达式相匹配的值。 |
关于JS中match() 和 exec() 返回值和属性的测试就给大家介绍到这里,希望对大家有所帮助!
相关推荐
-
深入剖析javascript中的exec与match方法
exec是正则表达式的方法,而不是字符串的方法,它的参数才是字符串,如下所示: var re=new RegExp(/\d/); re.exec( "abc4def" ); //或者使用perl风格: /\d/.exec( "abc4def" ); //match才是字符串类提供的方法,它的参数是正则表达式对象,如下用法是正确的: "abc4def".match(\d); exec和match返回的都是数组 如果执行exec方法的正则表达式没有分
-
JS正则中的match与exec使用说明
主要参考W3C教程 String.match() match() 方法将检索目标字符串,以找到一个或多个与 正则表达式regexp 匹配的文本.match()有两种情况: <!--[if !supportLists]-->1. <!--[endif]-->如果 regexp 具有标志 g,则 match() 方法将执行全局检索,找到目标字符串中的所有匹配子字符串. 匹配情况 返回值 没有找到任何匹配的子串 null 找到了一个或多个匹配子串 一个数组.数组的内容包含所有的匹配子串
-
js正则表达式中test,exec,match方法的区别说明
js正则表达式中test,exec,match方法的区别说明 test test 返回 Boolean,查找对应的字符串中是否存在模式.var str = "1a1b1c";var reg = new RegExp("1.", "");alert(reg.test(str)); // true exec exec 查找并返回当前的匹配结果,并以数组的形式返回.var str = "1a1b1c";var reg = new R
-
js正则表达exec与match的区别说明
以前用js很少用到js的正则表达式,即使用到了,也是诸如邮件名称之类的判断,网上代码很多,很少有研究,拿来即用. 最近开发遇到一些需要使用正则表达式,顺便研究一下 正则表达式对象有两个定义方式:: 1.第一种定义: new RegExp(pattern, attributes);如var reg = new RegExp("abc","g") 其中pattern为表示表达式内容,如上表示匹配abc attributes:g,全局匹配,i不区分大小写,m执行多行匹配,
-
js中exec、test、match、search、replace、split用法
exec:对string进行正则处理,并返回匹配结果.array[0]为原字符串,array[i]为匹配在整个被搜索字符串中的位置. test:测试string是否包含有匹配结果,包含返回true,不包含返回false. match(pattern) :根据pattern进行正则匹配,如果匹配到,返回匹配结果,如匹配不到返回null search(pattern) :根据pattern进行正则匹配,如果匹配到一个结果,则返回它的索引数;否则返回-1 replace(pattern,replace
-
js的正则test,match,exec详细解析
正则表达式gi我刚开始也看不懂,从网上找到后看到了,现在分享给大家正在表达式的通项: /pattern/flags 即(/模式/标记 ) 构造器函数方法使用方法如下:new RegExp("pattern"[, "flags"])即new RegExp("模式"[,"标记"])参数:pattern(模式)表示正则表达式的文本flags(标记)如果指定此项,flags可以是下面值之一:g: global match(全定匹配)i
-
js正则函数match、exec、test、search、replace、split使用介绍集合
match 方法 使用正则表达式模式对字符串执行查找,并将包含查找的结果作为数组返回. stringObj.match(rgExp) 参数 stringObj 必选项.对其进行查找的 String 对象或字符串文字. rgExp 必选项.为包含正则表达式模式和可用标志的正则表达式对象.也可以是包含正则表达式模式和可用标志的变量名或字符串文字. 其余说明与exec一样,不同的是如果match的表达式匹配了全局标记g将出现所有匹配项,而不用循环,但所有匹配中不会包含子匹配项. 例子1: functi
-
javascript 中String.match()与RegExp.exec()的区别说明
1. 这两个方法,如果匹配成功,返回一个数组,匹配失败,返回null. 2. 当RegExp的global属性为false时,这两个方法的返回数组是一样的. 数组的第0个元素是整个pattern的第一个匹配字符串,接下来的元素是pattern第一个匹配中的子匹配字符串. 此外,数组还有index和input两个额外属性,index是匹配字符串的起始位置,input是整个输入字符串. 此时,RegExp的lastIndex属性一直是0. demo: 复制代码 代码如下: var s = 'this
-
关于JS中match() 和 exec() 返回值和属性的测试
语法: exec() : RegExpObject.exec(string) match() : stringObject.match(string) stringObject.match(regexp) 知识点: exec() 是RegExp对象的方法,而 match() 是String对象的方法. 都会返回包含第一个匹配项信息的数组:或者在没有匹配项的情况下返回null. 返回的数组虽然是Array 的实例,但包含两个额外的属性:index 和 input.其中,index 表示匹配项在字符
-
解决nodejs中使用http请求返回值为html时乱码的问题
今天用nodejs进行http请求时返回的数据是一个html文件,然后我还是按照以前解析json数据的方法.果不其然报错了:SyntaxError: Unexpected token in JSON at position 0 没办法,只好换一种方法,将接受到的Buffer对象toString,然后打印出来发现是乱码. 第一感觉是编码问题,google一下然后看官方文档,总结三种方法: 1.toString 加编码格式作为参数. 2.使用iconv-lite 改变编码. 3.使用cheerio
-
老生常谈javascript中逻辑运算符&&和||的返回值问题
今天在做逻辑运算符的时候遇到一个小问题一直转不过弯来,var a=(undefined&&123)||(3||5)的返回值是什么? 首先是||的返回值问题: ||的返回值会返回最早遇到非以下类型的值: NaN null undefined 0 false; 所以3||5返回的是3: 如果||左右两边都是以上类型的值时,会返回最后一个 如 var a=0||null||undefined则a返回的值是undefined; 其次是&&的返回值问题: &&的返回值
-
浅谈js中function的参数默认值
func(string1,url,flag,icon),然后在另一个asp中调用它func(a,b),那flag和icon的值是什么,怎么定义默认值?谢谢! --默认值应该是 undefined 在函数内预设数可以用 arguments[i] i就是你参数的位置 第一个为0 所以要设定 flag 的默认值 则可以这么写 function func(string1,url,flag,icon){ if(!arguments[2]) flag = "123"; if(!arguments[
-
js中判断用户输入的值是否为空的简单实例
在js中判断用户输入的值是否为空,这是大家用得非常多的. 这没有什么好写的. 而我却写了. 原因只是自以为是的认为我的这些代码写得不错, 供大家参考一下. 这是摘自的我一个项目的中的用户注册页面.对于大多数人来说,这都几乎是100%经历过的.贴代码吧,这些代码都是用js写的. 不难,很容易看懂. 看的时候,只要区别两个js类就行了.前台页面代码:reguser.aspx 复制代码 代码如下: <%@ Page language="c#" Codebehind="RegU
-
浅谈Java中的this作为返回值时返回的是什么
有时会遇到this作为返回值的情况,那么此时返回的到底是什么呢? 返回的是调用this所处方法的那个对象的引用,读起来有点绕口哈,有没有想起小学语文分析句子成份的试题,哈哈. 一点点分析的话,主干是"返回的是引用": 什么引用呢?"那个对象的引用": 哪个对象呢?"调用方法的那个对象": 调用的哪个方法呢?"调用的是this所位于的方法":这样就清楚了. 再总结一下就是,this作为返回值时,返回的是调用某方法的对象的引用,这
-
Python 中的参数传递、返回值、浅拷贝、深拷贝
1. Python 的参数传递 Python的参数传递,无法控制引用传递还是值传递.对于不可变对象(数字.字符.元组等)的参数,更类似值传递:对于可变对象(列表.字典等),更类似引用传递. def fun1(n): print(n) # n在没修改前,指向的地址和main函数中n指向的地址相同 n = 20 # n在修改后,指向的地址发生改变,相当于新建了一个值为20的参数n def fun2(l): print(l) # l在没修改前,指向的地址和main函数中l指向的地址相同 l = [5,
-
ASP.NET Core中的Action的返回值类型实现
在Asp.net Core之前所有的Action返回值都是ActionResult,Json(),File()等方法返回的都是ActionResult的子类.并且Core把MVC跟WebApi合并之后Action的返回值体系也有了很大的变化. ActionResult类 ActionResult类是最常用的返回值类型.基本沿用了之前Asp.net MVC的那套东西,使用它大部分情况都没问题.比如用它来返回视图,返回json,返回文件等等.如果是异步则使用Task. public class Te
-
Django中get()和filter()返回值区别详解
先上官方文档! filter(**kwargs) 返回包含与给定查找参数匹配的对象的新查询集. 简单来说,返回一个又对象组成的查询集合 get(**kwargs) 返回与给定查找参数匹配的对象,该对象应采用字段查找中描述的格式. 例子 例如在Model中有一个Order类,包含一个id字段,输入 id 为2019 字段的 id 1.get()方法 orders = Orders.objects.get(id=20190003) print(order) 先查看orders是什么,结果为 Orde
-
js中易弄混淆的"位置"相关属性详解
目录 一.Dom对象属性——距离 二.Bom对象属性——距离 三.Window对象属性——距离 四.Event对象属性——坐标 总结 一.Dom对象属性——距离 1.offsetLeft && offsetTop offsetLeft //返回当前元素左边界到其上级元素(offsetParent)的左边界的距离[只读] offsetTop //返回当前元素上边界到其上级元素(offsetParent)的上边界的距离[只读] 2. offsetWidth && offsetH
随机推荐
- Angular ui.bootstrap.pagination分页
- JS实现的颜色实时渐变效果完整实例
- HTML表单元素覆盖样式元素问题及其补救之道
- Sql Server数据库各版本功能对比
- angularjs利用directive实现移动端自定义软键盘的示例
- Windows7下安装 Nodejs 并在 WebStorm 9.0.1 下搭建编译 LESS 环境的图文教程
- js的表单操作 简单计算器
- PHP中函数gzuncompress无法使用的解决方法
- asp文件用什么软件编辑
- php 中文和编码判断代码
- 探讨方法的重写(覆载)详解
- java异常处理的简单练习
- 取随机记录的语句
- Jquery 实现checkbox全选方法
- extjs简介_动力节点Java学院整理
- Vista边栏天气故障解决办法
- 用vbs实现在启动 Windows 资源管理器时打开特定文件夹
- 解决MySQL忘记密码问题的方法
- Android后端服务器的搭建方法
- ANDROID 完美退出APP的实例代码