js字符串:你真的了解查找字符串的各种方法?

前提须知:在前端web开发中,我们很多时候需要对字符串进行一些操作,比如我们需要知道一个字符串是否包含其他字符串。对于查找字符串,有很多种的方法,为了让我们的开发过程更加简便,所以我们需要挑选合适的方法来进行开发。

1.indexOf(searchValue[,formIndex])

indexOf()用来检索字符串出现的第一次的位置,返回值字符串出现的第一次的下标。

  • 参数searchValue(必传):你要进行搜索的字符串
  • 参数formIndex(选传):从字符串的哪个下标开始进行搜索,如果不传该参数,默认从头开始进行检索
        var a = 'abcdefb'

        console.log(a.indexOf('b'))
        // 结果:1
        // 原因:没传第二个参数,默认从头开始检索,b第一次出现的下标是1

        console.log(a.indexOf('b', 2))
        // 结果:6
        // 原因:从下标2开始进行检索,b第一次出现时6

        console.log(a.indexOf('acd'))
        // 结果:-1
        // 原因:不存在该字符串

        console.log(a.indexOf('bcde'))
        // 结果:1
        // 原因:匹配成功,返回是匹配成功的第一字符的下标

2.lastIndexOf(searchValue[,formIndex])

lastIndexOf()的使用方法和indexOf()方法一样,就是他是从结尾开始检索,返回的是从末尾开始匹配成功的第一个字符的下标

3.search(字符串或正则表达式)

search():查找成功就返回第一个匹配的子字符串的起始位置,如果没有匹配的,则返回-1。

  • 参数:你要进行匹配的字符串或者是正则表达式
    注:使用方法和indexOf()差不多,就是search只有一个参数,返回值一样,search()可以接收字符串或者正则表达式,不能指定检索开始的位置

4.match(字符串或正则表达式)

match()的使用方法:

  • 返回值:匹配失败返回null,匹配成功返回一个数组,匹配成功的内容。如果是使用正则表达式全局匹配,则匹配多次,否则只匹配一个。
        var a = 'abcdefb'

        console.log(a.match('b'))
        // 结果:["b", index: 1, input: "abcdefb", groups: undefined]
        // 原因:"b"是查找的字符串,index是字符串出现的首个位置,input是父子符串,就是这里的a变量。
        // groups暂时我还不懂,懂得可以在评论区解析一下

        console.log(a.match('g'))
        // 结果:null
        // 原因:匹配失败

        console.log(a.match(/b/))
        // 结果:["b", index: 1, input: "abcdefb", groups: undefined]
        // 原因:"b"是查找的字符串,index是字符串出现的首个位置,input是父子符串,就是这里的a变量。
        // groups暂时我还不懂,懂得可以在评论区解析一下

        console.log(a.match(/b/g))
        // 结果:['b', 'b']
        // 原因:使用了全局匹配,匹配多次,返回匹配成功的数组

应用场景推荐:如果传入参数是字符串或者需要从特定位置进行匹配,用indexOf()或者lastIndexOf(),如果是传入参数是正则表达式,推荐用search(),如果需要多次匹配用match(),如果想要或者字符串的重复字符,就用match()的返回值.length就可以了

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值