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.replace函数 原型:stringObj.replace(regExp, replaceText) 参数:regExp表示正则表达式模式,stringObj表示需要进行匹配的字符串,replaceText表示替换成该文本内容,replaceText也可以是返回字符串的一个函数 返回值:返回替换之后的字符串   示例1:
  var str = “aaabbbcccaaabbbccc”;
  var reg = /aaa/;
  var res = str.replace(reg, ’111′);
  console.log(res);//返回111bbbcccaaabbbccc ,只替换第一个匹配项,若需要替换所有则需要使用g选项
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

 

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

  1. Node.js 教程 06 - 函数

    前言: 本篇介绍的是Node.js中的函数,相对于上一篇会简单一点,其实和我们Javascript中的function无异. 好了,废话不多说了,我们进入正题吧. Node.js函数: [示例1:创建 ...

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

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

  3. Nodejs正则表达式函数之match、test、exec、search、split、replace使用详解

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

  4. Node.js:回调函数

    概要:本篇博客主要通过对比node.js异步与同步方式读取文件的方式来解释node中回调函数的作用. 1.异步方式读取文件: 新建一个文本文档用于测试,如下图: 代码如下: // node异步方式读取 ...

  5. 【node.js】回调函数

    学习链接:http://www.runoob.com/nodejs/nodejs-callback.html Node.js 异步编程的直接体现就是回调. 异步编程依托于回调来实现,但不能说使用了回调 ...

  6. Node js 安装+回调函数+事件

    /* 从网站 https://nodejs.org/zh-cn/ 下载 这里用的 9.4.0 版本 下载完安装 安装目录是 D:\ApacheServer\node 一路默认安装 安装后打开cmd命令 ...

  7. node.js通过回调函数获取异步函数的返回结果

    html文件代码 <!DOCTYPE html> <html lang="en"> <head> <meta charset=" ...

  8. node.js 中回调函数callback(转载),说的很清楚,看一遍就理解了

    最近在看 express,满眼看去,到处是以函数作为参数的回调函数的使用.如果这个概念理解不了,nodejs.express 的代码就会看得一塌糊涂.比如: 复制代码 代码如下: app.use(fu ...

  9. 探究js正则匹配方法:match和exec

    match是字符串方法,写法为:str.match(reg) exec是正则表达式方法,写法为:reg.exec(str) match和exec在匹配成功时返回的都是数组,在没有匹配上时返回的都是nu ...

随机推荐

  1. SingletonBeanRegistry

    // 给定一个存在的object对象,该Registry将它存储为一个单例的根据给定的beanName(给定的object已经完全初始化完成,在访问Registry的单例object时应该是同步的)v ...

  2. VS 无法启动程序

    今天遇到这个问题网上找了很多资料,有很多人都遇到了这个问题,也有很多不同的答案,于是我们个答案都试了一遍都没有解决我这个问题的错误,于是就把控制面板中的打开功能和windows功能里面的Interne ...

  3. SQL Server 通配符 Wildcard character

    SQL Server 通配符 Wildcard character %        任意长度的字符串,如:'%computer%' _        单个字符,如:'_ean' []        ...

  4. ibatis返回结果映射到HashMap时,列名无效的问题

    遇到问题: 1.项目开发过程中在xml配置文件中使用$tableName/sql$时,报"列名无效"错误,后来经过查询,发现是ibatis缓存 了上一次查询的表结构的原因.解决办法 ...

  5. poj2243

    Knight Moves Time Limit: 1000MS   Memory Limit: 65536K Total Submissions: 13433   Accepted: 7518 Des ...

  6. Bootstrap ACE后台管理界面模板-jquery已整理

    做后台通用模板,基于bootstrap,jquery写成的模板,非常齐全.国内不能正常访问google我将不能访问的jquery替换成cdn.bootcss.com网站下的jquery 链接: htt ...

  7. css选择器有哪些?哪些属性可以继承?优先级算法如何计算?内联和important哪个优先

    CSS选择器:基本可以分为通配选择器,标签选择器,类选择器,ID选择器,简单属性选择,具体属性选择,根据部分属性值选择,特定属性选择,从结构上来分还有后代选择器,子元素选择器,相邻兄弟选择器以及伪类. ...

  8. CSS之Win8界面摸拟

    开门见山,先把测试Result放上: <head> <meta charset="UTF-8"> <meta http-equiv="X-U ...

  9. Android手机播放电脑视频文件-屌丝必备

    今天早上一到办公室,照常打开博客园看文章,看到有一片文章是用  http://www.cnblogs.com/wdfrog/p/3738180.html 看到这哥们实现的方法好复杂,又是配置电脑端,又 ...

  10. Android项目源码界面超级华丽的仿QQ最新版本

    这是一个我们比较熟悉的一款应用,高仿专仿最新QQ应用源码,也是一个高仿QQ最新版本的项目,界面超级华丽,使用了大量的自定义控件,项目里实现了部分功能,例如WIFI-FTP(把手机变成FTP服务端,可以 ...