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

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:[email protected]#eee”;
  var reg = /[,:@#]/;
  var res = str.split(reg);
  console.log(res); //输出[ ‘aaa‘, ‘bbb‘, ‘ccc‘, ‘ddd‘, ‘eee‘ ] 这才是用正则的强大之处
  示例3.
  var str = “aaa,bbb:[email protected]#eee”;
  var reg = /[,:@#]/;
  var res = str.split(reg, 3);
  console.log(res); //输出[ ‘aaa‘, ‘bbb‘, ‘ccc‘]  

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

时间: 2024-10-22 09:34:55

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

Python中re.match与re.search的使用方法详解

本文和大家分享的主要是python正则表达式中re.match函数与re.search方法的相关用法及异同点,希望通过本文的分享,能对大家有所帮助. re.match函数 re.match 尝试从字符串的起始位置匹配一个模式,如果不是起始位置匹配成功的话,match()就返回none. 函数语法: re.match(pattern, string, flags=0) 函数参数说明: 参数描述 pattern匹配的正则表达式 string要匹配的字符串. flags标志位,用于控制正则表达式的匹配

node.js fs所有函数的定义和功能

表4-1 fs 模块函数表 功能 异步方法 同步方法 打开文件  fs.open(path,flags, [mode], [callback(err, fd)])  fs.openSync(path, flags, [mode]) 关闭文件  fs.close(fd, [callback(err)])  fs.closeSync(fd) 读取文件(文件描述符 )fs.read(fd,buffer,offset,length,position, [callback(err, bytesRead,

Node.js 教程 06 - 函数

前言: 本篇介绍的是Node.js中的函数,相对于上一篇会简单一点,其实和我们Javascript中的function无异. 好了,废话不多说了,我们进入正题吧. Node.js函数: [示例1:创建基本的带参函数] 在Javascript中,我们使用function定义函数,Node.js本身语法就可以看做纯Js,所以创建函数也是一样的. function sayHello(_name){ console.info("Hello : " + _name); } sayHello(&q

hbuilder开发node.js,以及node.js的回调函数

1.hbuilder安装node.js开发插件 工具---插件安装 然后重启Hbuilder让nodeeclipse生效就行了 运行:运行方式选择node应用就可以运行node.js了. 显示出了控制台,说明nodeJS可以在Hbuilder中使用了.(PS,电脑要先安装过node.js,Hbuilder只是辅助) 2.node.js的回调函数 原文地址:https://www.cnblogs.com/xingyue1988/p/8779633.html

Node.js 使用回调函数实现串行流程控制

下面是一个使用Node.js回调函数实现串行流程控制的示例: setTimeout(function() { console.log('I excute first.'); setTimeout(function() { console.log('I excute next.'); setTimeout(function() { console.log('I excute last.'); }, 100); }, 500); }, 1000);

Nodejs正则表达式函数之match、test、exec、search、split、replace

1. Match函数 使用指定的正则表达式函数对字符串惊醒查找,并以数组形式返回符合要求的字符串 原型:stringObj.match(regExp) 参数: stringObj 必选项,需要去进行匹配的字符串 RegExp  必选项,指定的正则表达式 返回值:如果没有使用g(全局匹配)选项,则返回第一个匹配的字符串.该字符串所在位置及原始字符串组成的数组,如果使用g选项,则返回所有匹配的字符串组成的数组 示例1:    var str = "aaabbbcccaaabbbccc"; 

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

记性不好的人,总是容易把记住的东西忘记掉!为了以后忘记的时候能够更快的找到并复习,最好还是做笔记!好记性不如赖笔头嘛! 1. Match函数 使用指定的正则表达式函数对字符串惊醒查找,并以数组形式返回符合要求的字符串 原型:stringObj.match(regExp) 参数: stringObj 必选项,需要去进行匹配的字符串 RegExp  必选项,指定的正则表达式 返回值:如果没有使用g(全局匹配)选项,则返回第一个匹配的字符串.该字符串所在位置及原始字符串组成的数组,如果使用g选项,则返

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

/* 从网站 https://nodejs.org/zh-cn/ 下载 这里用的 9.4.0 版本 下载完安装 安装目录是 D:\ApacheServer\node 一路默认安装 安装后打开cmd命令行输入 path 在显示的结果中查找是否有 D:\ApacheServer\node有的话表示环境变量中已经包含了 D:\ApacheServer\node\ 可以在cmd中直接使用 node 这个命令 如在当前命令行中输入 node --version 显示 v9.4.0 当前nodejs的版本

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

最近在看 express,满眼看去,到处是以函数作为参数的回调函数的使用.如果这个概念理解不了,nodejs.express 的代码就会看得一塌糊涂.比如: 复制代码 代码如下: app.use(function(req, res, next) { var err = new Error('Not Found'); err.status = 404; next(err); }); app是对象,use是方法,方法的参数是一个带参的匿名函数,函数体直接在后面给出了.这段代码怎么理解呢?我们先来了解