一、定义的不同

RegExp.prototype.test()

RegExp.prototype.exec()

String.prototype.match()

从MDN的定义可以看出,test和exec是正则实例的API,match是String的,这一点决定了调用方式的不同。

二、应用场景的不同

如果只是想要判断正则表达式和字符串是否匹配,用test是最简单的。

const bool = /^hello/.test('helloworld') // true

如果你不只是想要知道是否匹配,还想知道匹配的结果,那么就可以用match。

const arr = 'helloworld'.match(/^hello/)
// ['hello', index:0, input: 'helloworld', group: undefined]

如果你不仅想知道匹配结果,还想遍历匹配结果,那就可以用exec。

const reg = /foo*/g;
const str = 'table football foosball';
let res;
while ((res = reg.exec(str)) !== null) {console.log('==========', res);
}

执行结果如下:

这里需要注意的是,如果要遍历正则结果,正则表达式一定要加上全局标识g。

正则 null_正则表达式exec、match、test的区别相关推荐

  1. python 正则表达式 re.sub_Python 正则表达式 re.match/re.search/re.sub的使用解析

    From Python正则表达式 re.match(pattern, string, flags=0) 尝试从字符串起始位置匹配一个模式:如果不是起始位置匹配成功,则 re.match() 返回non ...

  2. linux下-exec和xargs的区别

    原文地址:http://blog.csdn.net/arganzheng/article/details/6260720 -exec和xargs的区别 2010-11-27 星期六 晴朗 当你在命令行 ...

  3. SQL Server 中 EXEC 与 SP_EXECUTESQL 的区别

    SQL Server 中 EXEC 与 SP_EXECUTESQL 的区别 原文:SQL Server 中 EXEC 与 SP_EXECUTESQL 的区别 MSSQL为我们提供了两种动态执行SQL语 ...

  4. shell之xargs与-exec与管道的区别你造吗?

    Table of Contents 1.xargs作用: 2.使用模式: 3.xargs常用选项 4.xargs与管道|的区别 5.xargs与-exec的区别 1.xargs作用: (1)将前一个命 ...

  5. 正则表达式——re.match方法

    正则表达式-re.match方法 导入模块import re match()从左往右,从起始部分开始匹配 1.单字符匹配打印----match()方法,group()方法 text = 'python ...

  6. 正则表达式之——exec,match

    刚开始接触正则,发现了一件有意思的事,我想要匹配正则,这下尴尬了- -,光知道正则表达式写法,并不知道正则如何才能获取匹配值. 慢慢摸索中... 找到答案!!! 正则匹配有两种方法: 一种是match ...

  7. 匹配正则_Day233:正则表达式匹配方法 match()

    match()语法 match本身是JavaScript语言中字符串对象的一个方法,该方法的签名是 match([string] | [RegExp]) 它的参数既可以是一个字符串,也可以是一个正则表 ...

  8. js php 正则差别,正则表达式(括号)、[中括号]、{大括号}的区别小结,正则表达式小结...

    正则表达式(括号).[中括号].{大括号}的区别小结,正则表达式小结 正则表达式的() [] {}有不同的意思. () 是为了提取匹配的字符串.表达式中有几个()就有几个相应的匹配字符串. (\s*) ...

  9. python compile正则_Python 正则表达式:compile,match

    本文以匹配×××ID为例,介绍re模块的compile与match的用法 复杂匹配 = re.compile(正则表达式): 将正则表达式实例化 + re.match(要匹配的字符串): 从字符串开 ...

最新文章

  1. 【NCEPU】韩绘锦:扩散卷积神经网络
  2. c# 多线程排队队列实现的源码
  3. jq获取img高度(动态生成的image高度为0原因)
  4. 编写安全的代码(ACL使用方法)
  5. 如何高效安全的将资源同步到本地数据库
  6. 阻塞(Block)和非阻塞(Non-Block)
  7. httpstat:一个检查网站性能的 curl 统计分析工具
  8. 使用go的ssh包快速打造一个本地命令行ssh客户端
  9. C++的多态原理和实现
  10. webstorm如何自定义代码模板
  11. 发那科karel机器人环境配置_Fanuc-你没用到的Karel编译方式
  12. 客户细分常见的十大错误
  13. subsequence java_Java StringBuilder subSequence()方法与示例
  14. 【SecureCRT】SecureCRT设置上传下载目录
  15. Android Emulator has terminated
  16. Unity内置Shader解读1——Bumped Diffuse
  17. 计算机信息计量单位G的单位,计算机中的有些计量单位例如G、MB是表示什么意思?...
  18. 常用签名方式生成sign
  19. RINEX3 版本 Observation codes 介绍
  20. 天融信EDR 彻底卸载方法

热门文章

  1. 朴素贝叶斯法(Naive Bayes,NB)
  2. LeetCode 102. 二叉树的层次遍历(BFS)
  3. c写成php的扩展_用C语言编写PHP扩展
  4. php unicode 插入 mysql_关于MySQL的一些骚操作——提升正确性,抠点性能
  5. 【Python基础知识-pycharm版】第十节_异常
  6. python编程入门课_程序设计入门—Python
  7. Spring Cloud构建微服务架构:分布式服务跟踪(入门)【Dalston版】
  8. YUI经验谈 - 自定义事件默认行为
  9. 剖析 Promise 之基础篇
  10. 我对Spring的理解