转载来源于:http://www.91xueke.com/2013/04/05/307.htm


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.   varres=str.match(/aaa/g);//使用g选项,全局匹配

2.exec函数

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

原型:regExp.exec(stringObj)

  • regExp必选项,表示指定的正则表达式模式
  • stringObj必选项,表示需要查找的字符串
  • 返回值:无论有无g选项,都返回第一个匹配的字符串、该字符串所在位置及原始字符串组成的数组,但是该方法可以返回子匹配项,是match所不能及的

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

    原型:regExp.test(str)

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

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

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

    原型:stringObj.search(regExp)

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

      示例1:
  •   varreg=/ccc/;
  •   varres=str.search(reg);
  •   console.log(res);//输出6
  • 5.replace函数

    原型:stringObj.replace(regExp,replaceText)

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

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

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

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

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

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

      varstr=“aaa,bbb,ccc”;
  •   varreg=/,/;
  •   varres=str.split(reg);
  •   //其实这里可以简单的写为varres=str.split(“,”);
  •   示例2:
  • ;
  •   varreg=/[,:@#]/;
  •   示例3.
  • ;
  •   varres=str.split(reg,3);
  • Ok今天的笔记到此为止,有什么不对的地方,欢迎指正!

    Nodejs正则表达式的更多相关文章

    1. 利用Node实现HTML5离线存储的方法

      这篇文章主要介绍了利用Node实现HTML5离线存储的方法,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下

    2. HTML5数字输入仅接受整数的实现代码

      这篇文章主要介绍了HTML5数字输入仅接受整数的实现代码,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下

    3. 如何在iOS中检测文本(字符串)语言?

      例如,给定以下字符串:我想检测每个声明的字符串中使用的语言.让我们假设已实现函数的签名是:如果没有检测到语言,则返回可选字符串.因此,适当的结果将是:有一个简单的方法来实现它吗?

    4. ios – 使用带有NodeJs HTTPS的certificates.cer

      我为IOS推送通知生成了一个.cer文件,我希望将它与NodeJSHTTPS模块一起使用.我发现HTTPS模块的唯一例子是使用.pem和.sfx文件,而不是.cer:有解决方案吗解决方法.cer文件可以使用两种不同的格式进行编码:PEM和DER.如果您的文件使用PEM格式编码,您可以像使用任何其他.pem文件一样使用它(有关详细信息,请参见Node.jsdocumentation):如果您的文件使

    5. ios – 使用大写符号在字符串swift中获取URL的正则表达式

      我尝试在文本中获取URL.所以,在此之前,我使用了这样一个表达式:但是当用户输入带有大写符号的URL时(例如Http://Google.com,它与它不匹配)我遇到了问题.我试过了:但什么都没发生.解决方法您可以使用正则表达式中的i内联标志关闭区分大小写,有关可用正则表达式功能的详细信息,请参阅FoundationFrameworkReference.(?ismwx-ismwx)Flagsetti

    6. ios – 如何在Swift 3中使用正则表达式?

      解决方法我相信.当没有其他选项适用时,将使用.allZeros.因此,使用Swift3,您可以传递一个空的选项列表或省略options参数,因为它默认为无选项:要么请注意,在Swift3中,您不再使用error参数.它现在抛出.

    7. ios – lldb断点在类目标c中的所有方法

      如何使用lldb在ObjectiveC类中的所有方法上自动设置断点?

    8. ios – Swift:如何从不同的swift文件中调用函数

      我的Xcode6beta-2项目中有多个类型为UIViewController的swift文件.我基本上想知道文件A中的一些数据在文件B中使用.我的文件都是UIViewControllers,我创建了一个没有参数的函数,它返回UIViewController_A中的字符串.当我尝试在UIViewController_B中调用所述函数时,intellisense为我填写,但是我必须有一个自动填充为U

    9. ios – 如何使用SwiftyJSON将字符串转换为JSON

      要转换的字符串:[{“description”:“Hi”,“id”:2,“img”:“hi.png”},{“description”:“pet”,“id”:10,“img”:“pet.png“},{”description“:”Hello!:D“,”id“:12,”img“:”hello.png“}]转换字符串的代码:varjson=JSON该字符串转换为JSON,当我尝试计算这个JSON里面有多少个块时,我得到0.打印控制台输出:0我失踪了什么帮助非常感激.解决方法实际上,在SwifyJSON中有一个内

    10. ios – 将两个字符串转换为一组布尔值的快速方法是什么?

      我有一个长字符串,我想转换为一个布尔值数组.而且它需要很多次,很快.我天真的尝试是这样的:但这比我想要的要慢很多.我的剖析告诉我,地图是减速的地方,但我不知道我能做多么简单.我觉得如果没有Swift’s/ObjC的开销,这样做会很快.在C中,我认为这是一个简单的循环,其中一个字节的内存与一个常量进行比较,但我不知道我应该看的是什么函数或语法.有更好的办法吗?

    随机推荐

    1. 法国电话号码的正则表达式

      我正在尝试实施一个正则表达式,允许我检查一个号码是否是一个有效的法国电话号码.一定是这样的:要么:这是我实施的但是错了……

    2. 正则表达式 – perl分裂奇怪的行为

      PSperl是5.18.0问题是量词*允许零空间,你必须使用,这意味着1或更多.请注意,F和O之间的空间正好为零.

    3. 正则表达式 – 正则表达式大于和小于

      我想匹配以下任何一个字符:或=或=.这个似乎不起作用:[/]试试这个:它匹配可选地后跟=,或者只是=自身.

    4. 如何使用正则表达式用空格替换字符之间的短划线

      我想用正则表达式替换出现在带空格的字母之间的短划线.例如,用abcd替换ab-cd以下匹配字符–字符序列,但也替换字符[即ab-cd导致d,而不是abcd,因为我希望]我如何适应以上只能取代–部分?

    5. 正则表达式 – /bb | [^ b] {2} /它是如何工作的?

      有人可以解释一下吗?我在t-shirt上看到了这个:它似乎在说:“成为或不成为”怎么样?我好像没找到’e’?

    6. 正则表达式 – 在Scala中验证电子邮件一行

      在我的代码中添加简单的电子邮件验证,我创建了以下函数:这将传递像bob@testmymail.com这样的电子邮件和bobtestmymail.com之类的失败邮件,但是带有空格字符的邮件会漏掉,就像bob@testmymail也会返回true.我可能在这里很傻……当我测试你的正则表达式并且它正在捕捉简单的电子邮件时,我检查了你的代码并看到你正在使用findFirstIn.我相信这是你的问题.findFirstIn将跳转所有空格,直到它匹配字符串中任何位置的某个序列.我相信在你的情况下,最好使用unapp

    7. 正则表达式对小字符串的暴力

      在测试小字符串时,使用正则表达式会带来性能上的好处,还是会强制它们更快?不会通过检查给定字符串的字符是否在指定范围内比使用正则表达式更快来强制它们吗?

    8. 正则表达式 – 为什么`stoutest`不是有效的正则表达式?

      isthedelimiter,thenthematch-only-onceruleof?PATTERN?

    9. 正则表达式 – 替换..与.在R

      我怎样才能替换..我尝试过类似的东西:但它并不像我希望的那样有效.尝试添加fixed=T.

    10. 正则表达式 – 如何在字符串中的特定位置添加字符?

      我正在使用记事本,并希望使用正则表达式替换在字符串中的特定位置插入一个字符.例如,在每行的第6位插入一个逗号是什么意思?如果要在第六个字符后添加字符,请使用搜索和更换从技术上讲,这将用MatchGroup1替换每行的前6个字符,后跟逗号.

    返回
    顶部