您是否曾经想在 JavaScript 中检查字符串是否以某个子字符串开头?如果是这样,您可能使用了内置方法startsWith(),该方法根据匹配情况返回 true 或 false。
但是,如果您需要的灵活性或功能超出了startsWith()我们所能提供的范围,该怎么办?例如,如果您想忽略字符串的大小写,或者使用正则表达式而不是文字子字符串,该怎么办?
在这篇博文中,我们将探索一些替代方法来检查 JavaScript 中的一个字符串是否以另一个字符串开头,并比较它们的性能。
- indexOf()
- lastIndexOf()
- match()
- slice()
- 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()方法
JavaScriptstartsWith()替代方法
JavaScript 的startsWith()替代方法有哪些?如果在开头找到子字符串, startsWith() 等替代indexOf()方法将返回 0,而如果提取的部分与子字符串匹配,则返回 true 。用正则表达式的方法也可以达到类似的效果。lastIndexOf()、slice()、substring()、test()
这里我们将看到五种不同的 JavaScript startsWith() 替代方法:
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次操作,而其他方法则落后。
结论
在这篇博文中,我们探索了 JavaScriptstartsWith()方法的一些替代方法,这些方法对于检查字符串是否以某个子字符串开头非常有用。我们已经了解了如何使用正则表达式、slice()、indexOf()和startsWith()来实现相同的功能并进行性能比较。