深入理解ES6--字符串方法

识别子字符串的方法

自从 JS 引入了 indexOf() 方法,开发者们就使用它来识别字符串是否存在于其它字符串中。 ES6 包含了以下三个方法来满足这类需求: includes() 方法,在给定文本存在于字符串中的任意位置时会返回 true ,否则返回 false ; startsWith() 方法,在给定文本出现在字符串起始处时返回 true ,否则返回 false ; endsWith() 方法,在给定文本出现在字符串结尾处时返回 true ,否则返回 false 。 每个方法都接受两个参数:需要搜索的文本,以及可选的搜索起始位置索引。当提供了第二 个参数时, includes() 与 startsWith() 方法会从该索引位置开始尝试匹配;而 endsWith() 方法会将字符串长度减去该参数,以此为起点开始尝试匹配。当第二个参数未提 供时, includes() 与 startsWith() 方法会从字符串起始处开始查找,而 endsWith() 方法 则从尾部开始。实际上,第二个参数减少了搜索字符串的次数。以下是使用这些方法的演 示:在这里插入图片描述
前六次调用没有使用第二个参数,因此它们在必要情况下会搜索整个字符串。最后三次调用 只检查了字符串的一部分:调用 msg.startsWith(“o”, 4) 从 msg 字符串的索引位置 4 (即 “Hello” 中的 “o” )开始尝试匹配;调用 msg.endsWith(“o”, 8) 也从位置 4 开始搜索,因 为参数 8 会从字符串的长度值( 12 )中被减去;而调用 msg.includes(“o”, 8) 则从索引 位置 8 开始尝试匹配,也就是 “world” 中的 “r” 。

虽然这三个方法使得判断子字符串是否存在变得更容易,但它们只返回了一个布尔值。若你 需要找到它们在另一个字符串中的确切位置,则需要使用 indexOf() 和 lastIndexOf() 。

如果向 startsWith() 、 endsWith() 或 includes() 方法传入了正则表达式而不是字符 串,会抛出错误。这与 indexOf() 以及 lastIndexOf() 方法的表现形成了反差,它们会 将正则表达式转换为字符串并搜索它。

repeat() 方法 ES6 还为字符串添加了一个 repeat() 方法,它接受一个参数作为字符串的重复次数,返回 一个将初始字符串重复指定次数的新字符串。例如:在这里插入图片描述
此方法比相同目的的其余方法更加方便,在操纵文本时特别有用,尤其是在需要产生缩进的 代码格式化工具中,像这样:在这里插入图片描述
第一次调用 repeat() 创建了一个包含四个空格的字符串,而 indentLevel 变量会持续追踪 缩进的级别。此后,你可以仅通过增加 indentLevel 的值来调用 repeat() 方法,便可以改变 空格数量。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值