ES6字符串匹配函数

ES6字符串匹配函数

  • 一、三个匹配函数
    • 1. String.includes()
    • 2. String.startsWith()
    • 3. String.endsWith()
  • 二、具体使用
    • 1. String.includes()
    • 2. String.startsWith()
    • 3. String.endsWith()
  • 三、拓展使用

一、三个匹配函数

1. String.includes()

includes(searchString,options):字符串是否包含指定值。
searchString:要搜索的字串(字符串类型)
position:搜索起始位置(数字类型)从0开始

2. String.startsWith()

startsWith(searchString,options):字符串起始正向匹配子串
searchString:要搜索的字串(字符串类型)
position:搜索起始位置(数字类型),从0开始

3. String.endsWith()

endsWith(searchString,options):字符串结尾反向匹配子串
searchString:要搜索的字串(字符串类型)
position:搜索起始位置(数字类型),从0开始,从结尾父串的总长度-position处开始反向匹配(str.length-position)

二、具体使用

1. String.includes()

  let parentStr1 = 'Hello world!'
  console.log(parentStr1.includes('ello'));
  console.log(parentStr1.includes('ello', 1)); // 从字符串位置1开始('ello world!')
  console.log(parentStr1.includes('ello', 2)); // 从字符串位置2开始('llo world!')

执行结果:
ES6字符串匹配函数_第1张图片

2. String.startsWith()

  let parentStr2 = 'Hello world!'
  console.log(parentStr2.startsWith('ello')); // 从起始第一个字符开始就与字串进行匹配,若不匹配则立刻返回false
  console.log(parentStr2.startsWith('ello', 1)); // 从字符串位置1开始('ello world!')
  console.log(parentStr2.startsWith('ello', 2));// 从字符串位置2开始('llo world!')

执行结果:
ES6字符串匹配函数_第2张图片

3. String.endsWith()

  let parentStr3 = 'Hello world!'
  console.log(parentStr3.length); // 12
  console.log(parentStr3.endsWith('world!')); // 父串是从结尾开始匹配字串的结尾,依次向前,即两个字符串均是反向匹配
  console.log(parentStr3.endsWith('world', 10));// 12-10=2,从倒数第2个开始匹配(从0开始):'Hello worl'
  console.log(parentStr3.endsWith('world', 11));// 12-11=1,从倒数第1个开始匹配(从0开始):'Hello world'

执行结果:
ES6字符串匹配函数_第3张图片

三、拓展使用

我们可以用startsWith()来简单实现父串匹配字串的位置,当然KMP算法的性能更优,这里只是为了日常中少量的字符串位置匹配。
思路:利用for循环,从父串的开始到末尾依次调用startsWith()方法,当返回结果为true时,当前索引即为字串所在父串中的位置
具体实现:

  let parentStr = 'Hello world!'
  let str = 'world'

  function matchingString(parentStr, childStr) {
    for (let i = 0; i < parentStr.length; i++) {
      if (parentStr.startsWith(childStr, i)) {
        return i
      }
    }
    return -1
  }

  console.log(matchingString(parentStr, str)); // 结果为 6

你可能感兴趣的:(前端社会成长之路,ES6学习笔记,es6,字符串)