你还不知道的可以替代`startWith()`的五种方式

546 阅读4分钟

您是否曾经想在 JavaScript 中检查字符串是否以某个子字符串开头?如果是这样,您可能使用了内置方法startsWith(),该方法根据匹配情况返回 true 或 false。

但是,如果您需要的灵活性或功能超出了startsWith()我们所能提供的范围,该怎么办?例如,如果您想忽略字符串的大小写,或者使用正则表达式而不是文字子字符串,该怎么办?

在这篇博文中,我们将探索一些替代方法来检查 JavaScript 中的一个字符串是否以另一个字符串开头,并比较它们的性能。

  1. indexOf()
  2. lastIndexOf()
  3. match()
  4. slice()
  5. substring()

读完本文后,您将更好地了解如何使用不同的方法来实现相同的目标,以及如何选择最适合您需求的方法。

什么是 JavaScriptstartsWith()方法?

在讨论 JavaScriptstartsWith()替代方法之前,我们先来看看什么是startsWith()方法。

JavaScript String startsWith()方法确定字符串是否以特定字符串开头,true如果该字符串以另一个字符串中的字符开头,则返回,否则返回false。JavaScriptstartsWith()方法区分大小写。 

要使用startsWith() JavaScript 字符串方法,您只需在字符串上调用该方法并传入searchString 参数即可。 

如果要使用startsWith()特定索引处的方法,可以传入position参数。这在字符串中进行特定位置搜索时非常有用。

这是一个例子:

let inputString = "Hello JavaScript";
let startsWithHello = inputString.startsWith("Hello");
console.log(startsWithHello); 
// Output: true

在上面的示例中,我们检查 JavaScript 字符串是否以“Hello”字符串开头。在此示例中,输入字符串“Hello JavaScript”以“Hello”开头,因此startsWith()方法返回 true。

在 JavaScript 中,有一个与该startsWith()方法相同的相反方法。JavaScript的endsWith()方法可用于检查字符串是否以特定子字符串或字符结尾。 

JavaScript StartsWith 方法

JavaScript 字符串startsWith()方法

JavaScriptstartsWith()替代方法

JavaScript 的startsWith()替代方法有哪些?如果在开头找到子字符串, startsWith() 等替代indexOf()方法将返回 0,而如果提取的部分与子字符串匹配,则返回 true 。用正则表达式的方法也可以达到类似的效果。lastIndexOf()slice()substring()test()

这里我们将看到五种不同的 JavaScript startsWith() 替代方法:

JavaScript 从替代方法开始

1.indexOf ()

JavaScript indexOf()方法返回字符串中指定值第一次出现的位置。如果未找到您要搜索的值,则返回 -1。

如果indexOf()方法返回0,那么您可以假设该字符串以指定的字符串或字符开头。您可以使用indexOf()方法作为startsWith()替代方法之一。

const inputString = 'Hello, JavaScript!'
const searchText = 'Hello'

if (inputString.indexOf(searchText) === 0) {
  console.log('String starts with "Hello".')
}
// Output: "String starts with "Hello"."

2.lastIndexOf()

JavaScript lastIndexOf() 方法返回字符串中最后一次出现的子字符串。如果lastIndexOf()方法返回0,那么您可以确认字符串以指定的子字符串开头。

请注意,起始索引设置为 0,以便从字符串的开头开始。

const inputString = 'Hello, JavaScript!'
const searchText = 'Hello'

if (inputString.lastIndexOf(searchText, 0) === 0) {
  console.log('String starts with "Hello".')
}
// Output: "String starts with "Hello"."

3. match()

此方法在字符串中搜索指定值并将该值作为字符串返回。如果未找到该值,则返回 null。

const inputString = 'Hello, JavaScript!'
const searchText = 'Hello'

if (inputString.match(searchText) && inputString.match(searchText).length > 0) {
  console.log('String starts with "Hello".')
}
// Output: "String starts with "Hello"."

4.slice() 

JavaScript slice()方法提取字符串的一部分并返回一个新字符串。它有两个参数:起始索引和结束索引。

const inputString = 'Hello, JavaScript!'
const searchText = 'Hello'

if (inputString.slice(0, searchText.length) === searchText) {
  console.log(`String starts with "${searchText}"`)
}
// Output: "Input string starts with 'Hello'"

5. substring()

JavaScript substring()方法提取字符串的一部分并将其作为新字符串返回。它需要两个参数:所需子字符串的起始索引(包括)和结束索引(不包括)。

const inputString = 'Hello, JavaScript!'
const searchText = 'Hello'

if (inputString.substring(0, searchText.length) === searchText) {
  console.log(`String starts with "${searchText}"`)
}
// Output: "Input string starts with 'Hello'"

您可以使用这些startsWith()替代方法来实现与该方法相同的结果startsWith()。 

JavaScriptstartsWith()替代方法性能比较

startsWith()方法是检查字符串是否以某个值开头的最有效且可读的方法。其他方法,例如slice正则表达式indexOf,在性能和效率方面比startsWith()差。startsWith()测得startsWith()每秒可以处理157,687次操作,而其他方法则落后。

JavaScript StartsWith 方法

结论

在这篇博文中,我们探索了 JavaScriptstartsWith()方法的一些替代方法,这些方法对于检查字符串是否以某个子字符串开头非常有用。我们已经了解了如何使用正则表达式slice()indexOf()startsWith()来实现相同的功能并进行性能比较。