1. Match函数

使用指定的正则表达式函数对字符串惊醒查找,并以数组形式返回符合要求的字符串

原型:stringObj.match(regExp)

参数:

  • stringObj 必选项,需要去进行匹配的字符串
  • RegExp  必选项,指定的正则表达式

返回值:如果没有使用g(全局匹配)选项,则返回第一个匹配的字符串、该字符串所在位置及原始字符串组成的数组,如果使用g选项,则返回所有匹配的字符串组成的数组

示例1:   
  var str = “aaabbbcccaaabbbccc”;   
  var res = str.match(/aaa/); //没有使用g选项   
  console.log(res); //输出[ 'aaa', index: 0, input: 'aaabbbcccaaabbbccc' ] 第一个表示匹配的字符串;第二个表示匹配的字符串坐在的索引位置,从0开始计算;第三个表示原始字符串;   
  示例2:   
  var str = “aaabbbcccaaabbbccc”;   
  var res = str.match(/aaa/g); //使用g选项,全局匹配   
  console.log(res); //输出[ 'aaa', 'aaa' ] 所有匹配的字符串组成的数组 

2.exec函数

使用指定的正则表达式模式去字符串中查找匹配项,并以数组形式返回,如果未查找到则返回null

原型:regExp.exec(stringObj)

参数:

  • regExp 必选项,表示指定的正则表达式模式
  • stringObj 必选项,表示需要查找的字符串

返回值:无论有无g选项,都返回第一个匹配的字符串、该字符串所在位置及原始字符串组成的数组,但是该方法可以返回子匹配项,是match所不能及的

  示例1:

      var str = “aaabbbcccaaabbbccc”;   
      var regExp = /aaa/; //未使用g选项   
      var res = regExp .exec(str);    
      console.log(res); //输出[ 'aaa', index: 0, input: 'aaabbbcccaaabbbccc' ]   
      示例2:   
      var str = “aaabbbcccaaabbbccc”;   
      var regExp = /aaa/g; //使用g选项   
      var res = regExp .exec(str);    
      console.log(res); //输出[ 'aaa', index: 0, input: 'aaabbbcccaaabbbccc' ]   
      示例3:   
      var str = “aaabbbccc1234aaabbbccc”;   
      var regExp = /ccc([0-9]+)aaa/;   
      var res = regExp .exec(str);    
      console.log(res); //输出[ 'ccc1234aaa', '1234', index: 6, input: 'aaabbbccc1234aaabbbccc' ] 第一个表示整个正则表达式所匹配的内容;第二个表示()内容的子表达式所匹配的内容;第三个和第四个同上   
      示例4:   
      var str = “aaabbbccc1234aaabbbcccaaabbbccc5678aaabbbccc”;   
      var reg = /ccc([0-9]+)aaa/;   
      var res = reg.exec(str);   
      console.log(res); //输出同示例三,因为exec只返回第一个匹配的字符串,如果想全部返回,则需要借助while循环和g参数来实现,如下   
      var str = “aaabbbccc1234aaabbbcccaaabbbccc5678aaabbbccc”;   
      var reg = /ccc([0-9]+)aaa/g;   
      while(res = reg.exec(str)){   
        console.log(res);   
      }   
      //输出如下:   
    [ 'ccc1234aaa', '1234', index: 6, input: 'aaabbbccc1234aaabbbcccaaabbbccc5678aaabbbccc' ][ 'ccc5678aaa', '5678', index: 28, input: 'aaabbbccc1234aaabbbcccaaabbbccc5678aaabbbccc' ]   
    //使用这个方法时切记加上g选项,否则while循环将无法跳出,每次都循环第一个匹配项,导致死循环,可能卡死!  

3.test函数

原型:regExp.test(str)

参数:regExp表示正则表达式模式  stringObj表示需要进行匹配的字符串

返回值:布尔类型,匹配则返回true,否则false

示例1:   
  var str = “aaabbbcccaaabbbccc”;   
  var reg = /[a-z]+/;   
  var res = reg.test(str);   
  console.log(res); //输出true   
  示例2:   
  var str = “aaabbbcccaaabbbccc”;   
  var reg = /[0-9]+/;   
  var res = reg.test(str);   
  console.log(res); //输出false   
  //该函数一般用来检测某字符串是否符合指定的规则   

4.search函数

原型:stringObj.search(regExp)

参数:regExp表示正则表达式模式  stringObj表示需要进行匹配的字符串

返回值:返回第一个匹配的字符串所在的位置(偏移量),从0开始

示例1:   
  var str = “aaabbbcccaaabbbccc”;   
  var reg = /ccc/;   
  var res = str.search(reg);   
  console.log(res); //输出 6  

5.split函数

原型:stringObj.split([separator[, limit]])

参数:separator表示分隔符(此处也可以是正则表达式),stringObj表示需要进行匹配的字符串,limit用来限制返回数组元素的个数

返回值:返回分割后的数组

示例1:   
  var str = “aaa,bbb,ccc”;   
  var reg = /,/;   
  var res = str.split(reg);   
  console.log(res); //输出[ 'aaa', 'bbb', 'ccc' ]   
  //其实这里可以简单的写为var res = str.split(“,”);   
  示例2:   
  var str = “aaa,bbb:ccc@ddd#eee”;   
  var reg = /[,:@#]/;   
  var res = str.split(reg);   
  console.log(res); //输出[ 'aaa', 'bbb', 'ccc', 'ddd', 'eee' ] 这才是用正则的强大之处   
  示例3.   
  var str = “aaa,bbb:ccc@ddd#eee”;   
  var reg = /[,:@#]/;   
  var res = str.split(reg, 3);   
  console.log(res); //输出[ 'aaa', 'bbb', 'ccc']  

原文地址:http://www.vxueke.com/2013/04/05/307.htm

转载时必须以链接形式注明原始出处及本声明。

Nodejs正则表达式函数之match、test、exec、search、split、replace使用详解的更多相关文章

  1. Python进阶----线程基础,开启线程的方式(类和函数),线程VS进程,线程的方法,守护线程,详解互斥锁,递归锁,信号量

    Python进阶----线程基础,开启线程的方式(类和函数),线程VS进程,线程的方法,守护线程,详解互斥锁,递归锁,信号量 一丶线程的理论知识 什么是线程:    1.线程是一堆指令,是操作系统调度 ...

  2. Node.js之【正则表达式函数之match、test、exec、search、split、replace使用详解】

    1. Match函数 使用指定的正则表达式函数对字符串惊醒查找,并以数组形式返回符合要求的字符串 原型:stringObj.match(regExp) 参数: stringObj 必选项,需要去进行匹 ...

  3. (转)Python内置函数进阶之“属性(property())”详解

    原文:https://blog.csdn.net/GeekLeee/article/details/78519767 版权声明:本文为博主原创文章,未经博主允许不得转载. https://blog.c ...

  4. 关于正则表达式中参数/g /m的详细分析和例子详解

    总结1:参数/g的用法 表达式加上参数g之后,表明可以进行全局匹配,注意这里"可以"的含义.我们详细叙述: 1)对于表达式对象的exec方法,不加入g,则只返回第一个匹配,无论执行 ...

  5. 正则表达式中的.*?和python中re.S参数的详解

    本章的内容主要是为讲解在正则表达式中常用的.*?和re.S! 在正则表达式中有贪婪匹配和最小匹配:如下为贪婪匹配(.*) import re match = re.search(r'PY.*', 'P ...

  6. Python开发环境Wing IDE之Search in Files工具详解

    Search in Files工具是Wing IDE中最强大的搜索选项.它支持磁盘.项目,打开编辑器,或其它文件集的多文件批量搜索.它还可以使用通配符搜索,并可以做基于正则表达式的搜索/替换. 建议用 ...

  7. python描述符(descriptor)、属性(property)、函数(类)装饰器(decorator )原理实例详解

     1.前言 Python的描述符是接触到Python核心编程中一个比较难以理解的内容,自己在学习的过程中也遇到过很多的疑惑,通过google和阅读源码,现将自己的理解和心得记录下来,也为正在为了该问题 ...

  8. SQLServer:探讨EXEC与sp_executesql的区别详解

    摘要 MSSQL为我们提供了两种动态执行SQL语句的命令,分别是EXEC和sp_executesql;通常,sp_executesql则更具有优势,它提供了输入输出接口,而EXEC没有.还有一个最大的 ...

  9. Exec msdb.dbo.sp_send_dbmail 参数详解(SQL Server 存储过程发邮件)

    转载oriency755 发布于2012-12-04 11:34:45 阅读数 6870 收藏   sp_send_dbmail [ [ @profile_name = ] 'profile_name ...

随机推荐

  1. IIS7报错

    错误内容:”未能加载文件或程序集“IWMS_Admin”或它的某一个依赖项.试图加载格式不正确的程“ 解决方法:进入IIS“应用程序池”,然后在右边列表中,选中当前网站所使用的程序池,打开右侧的“高级 ...

  2. 1080P、720P、4CIF、CIF所需要的理论带宽

    转自:http://blog.sina.com.cn/s/blog_64684bf30101hdl7.html 在视频监控系统中,对存储空间容量的大小需求是与画面质量的高低.及视频线路等都有很大关系. ...

  3. OK6410移植madplay播放器,王明学learn

    对于ok6410的madplay移植主要包括三部分.声卡驱动移植,播放器的移植,以及alsa库的移植. 一.首先移植声卡驱动以及播放器 ok6410采用WM97系列的声卡芯片,要使得内核支持该驱动,首 ...

  4. 搭建Mantis 缺陷管理系统(转)

    转自 什么是Mantis MantisBT is a free popular web-based bugtracking system (feature list). It is written i ...

  5. 64位ubuntu下重新编译hadoop2.2流水账

    hadoop官方网站中只提供了32位的hadoop-2.2.0.tar.gz,如果要在64位ubuntu下部署hadoop-2.2.0,就需要重新编译源码包,生成64位的部署包.建议以下操作使用roo ...

  6. 两个本地(localhost)html文件之间的传值

    什么是iframe? iframe 元素会创建包含另外一个文档的内联框架(即行内框架).可以理解为把iframe解释成“浏览器中的浏览器“ 在IE中: document.frames[i].docum ...

  7. 【前台页面 BUG】回车按钮后,页面自动跳转

    点击回车按钮后,页面自动的迅速跳转 原因: 表单隐式提交了. 解决方法: 在方法执行完成后,加上return false; 代码如下: /** * 注册按钮的点击事件 */ $("#regi ...

  8. 51nod 1051 求最大子矩阵和

    题目链接:http://www.51nod.com/onlineJudge/questionCode.html#!problemId=1051 1051 最大子矩阵和 基准时间限制:2 秒 空间限制: ...

  9. PHP之数据类型

    1.PHP字符串(String):一个字符串是一串字符的序列,就像"Hello world!":可以将任何文本放在单引号和双引号中: <?php $x="Hello ...

  10. JQuery学习之语法

    1.JQuery语法就是通过选取HTML元素,并对选取的元素执行某些操作: 基础语法:$(selector).action() (1)美元符号定义jQuery (2)选择符(selector)查询和查 ...