一尘不染

如何检查一个字符串“StartsWith”是否是另一个字符串?

javascript

String.StartsWith我将如何在 JavaScript 中编写相当于 C# 的代码?

var haystack = 'hello world';
var needle = 'he';

haystack.startsWith(needle) == true

注意:这是一个老问题,正如评论中指出的 ECMAScript 2015 (ES6) 介绍了该.startsWith方法。


阅读 179

收藏
2022-02-16

共2个答案

一尘不染

您可以使用 ECMAScript 6 的String.prototype.startsWith()方法,但尚未在所有浏览器中都支持。您需要使用 shim/polyfill 将其添加到不支持它的浏览器上。创建一个符合规范中列出的所有细节的实现有点复杂。如果您想要一个忠实的垫片,请使用:

一旦你填充了这个方法(或者如果你只支持已经拥有它的浏览器和 JavaScript 引擎),你可以像这样使用它:

   console.log("Hello World!".startsWith("He")); // true

var haystack = "Hello world";
var prefix = 'orl';
console.log(haystack.startsWith(prefix)); // false
2022-02-16
一尘不染

另一种选择.lastIndexOf

haystack.lastIndexOf(needle, 0) === 0

这会向后看,haystack以查找needle从 的索引开始0的事件haystack。换句话说,它只检查是否haystackneedle.

原则上,这应该比其他一些方法具有性能优势:

  • 它不会搜索整个haystack.
  • 它不会创建一个新的临时字符串然后立即丢弃它。
2022-02-16