正则表达式用于模式匹配的String方法

正则表达式的模式匹配的常用String方法有五类:search()/replace()/match()/exec()/split()
下边将分别进行介绍:

  1. search()
    search()方法主要用于检测字符串中与正则表达式匹配的第一个子串,需要注意的是其不支持全局匹配,所以即使设置g标志也没用。
    示例如下:

    "JavaScript".search(/script/i);
  2. replace()

    replace()用于替换匹配的字符串,支持两个参数:第一个为被替换的对象,第二个为替换的内容。
    与search()不同,如果replace()的第一个参数为字符串而不是正则表达式,将会直接进行搜索而不需要像search()一样需要先将字符串通过RegExp()转为正则表达式

    test.replace(/javascript/gi, "JavaScript");
  3. match()
    match()最为常用,参数为正则表达式,返回值为匹配结果组成的数组。

    "I like bike".match(/\w+ike/g)//["like","bike"]
    "I like bike very much".match(/(\w+)ike (very)/)//["bike very", "b", "very"]

    在没有g标志的情况下,match()返回的数组第一个为匹配的子串,后边的参数为分组结果。此时,返回的数组还有index和input两个属性:分别用于表示匹配的起始位置和目标字符串(”I like bike very much.”)


补充

  • exec()

    exec()与match()的使用有些区别:在非全局搜索时,两者返回结果一样;在全局模式下,exec()会返回匹配结果和分组的全部信息,而match()只会返回匹配结果。
    在非全局模式下,exec()多次执行时会根据lastIndex值从上次匹配结束的下一个位置开始进行查找;


    (/(\w+)ike (very)/g).exec("I like bike very much")//["bike very", "b", "very"]

    • split()
var test = "hello world";
test.split(/o\s*/);

  • lastIndex属性

通常只有RegExp对象的test()和exec()方法会用到该属性,而String()方法会将lastIndex置为0;

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Neil-

你们的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值