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

记性不好的人,总是容易把记住的东西忘记掉!为了以后忘记的时候能够更快的找到并复习,最好还是做笔记!好记性不如赖笔头嘛!

1.Match函数

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

原型:stringObj.match(regExp)

参数:

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

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


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

2.exec函数

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

原型:regExp.exec(stringObj)

参数:

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

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


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

3.test函数

原型:regExp.test(str)

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

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


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

4.search函数

原型:stringObj.search(regExp)

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

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


  1.   示例1:
  2.   varstr=“aaabbbcccaaabbbccc”;
  3.   varreg=/ccc/;
  4.   varres=str.search(reg);
  5.   console.log(res);//输出6

5.replace函数

原型:stringObj.replace(regExp,replaceText)

参数:regExp表示正则表达式模式,stringObj表示需要进行匹配的字符串,replaceText表示替换成该文本内容,replaceText也可以是返回字符串的一个函数

返回值:返回替换之后的字符串


  1.   示例1:
  2.   varstr=“aaabbbcccaaabbbccc”;
  3.   varreg=/aaa/;
  4.   varres=str.replace(reg,’111′);
  5.   console.log(res);//返回111bbbcccaaabbbccc,只替换第一个匹配项,若需要替换所有则需要使用g选项

5.split函数

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

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

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


  1.   示例1:
  2.   varstr=“aaa,bbb,ccc”;
  3.   varreg=/,/;
  4.   varres=str.split(reg);
  5.   console.log(res);//输出['aaa','bbb','ccc']
  6.   //其实这里可以简单的写为varres=str.split(“,”);
  7.   示例2:
  8.   varstr=“aaa,bbb:ccc@ddd#eee”;
  9.   varreg=/[,:@#]/;
  10.   varres=str.split(reg);
  11.   console.log(res);//输出['aaa','ccc','ddd','eee']这才是用正则的强大之处
  12.   示例3.
  13.   varstr=“aaa,:@#]/;
  14.   varres=str.split(reg,3);
  15.   console.log(res);//输出['aaa','ccc']

Ok今天的笔记到此为止,有什么不对的地方,欢迎指正!

相关文章

正则替换html代码中img标签的src值在开发富文本信息在移动端...
正则表达式
AWK是一种处理文本文件的语言,是一个强大的文件分析工具。它...
正则表达式是特殊的字符序列,利用事先定义好的特定字符以及...
Python界一名小学生,热心分享编程学习。
收集整理每周优质开发者内容,包括、、等方面。每周五定期发...