我如何在 JavaScript 中编写 C#的String.StartsWith
等价物?
var haystack = 'hello world';
var needle = 'he';
haystack.startsWith(needle) == true
注意:这是一个老问题,正如评论中指出的 ECMAScript 2015(ES6)引入了.startsWith
方法。但是,在撰写此更新时(2015 年), 浏览器支持还远未完成 。
您可以使用 ECMAScript 6 的String.prototype.startsWith()
方法,但并不是所有浏览器都支持它。您将需要使用填充 / 填充将其添加到不支持它的浏览器上。创建符合规范中列出的所有细节的实现有点复杂,并且本答案中定义的版本不会这样做; 如果你想要忠实的垫片,请使用:
String.prototype.startsWith
垫片 ,或String.prototype.startsWith
。 一旦你对方法进行了调整(或者如果你只支持已经拥有它的浏览器和 JavaScript 引擎),你就可以像这样使用它:
"Hello World!".startsWith("He"); // true
var haystack = "Hello world";
var prefix = 'orl';
haystack.startsWith(prefix); // false
.lastIndexOf
另一种选择:
haystack.lastIndexOf(needle, 0) === 0
这看起来向后通过haystack
对于发生needle
从指数开始0
的haystack
。换句话说,它只检查haystack
是否以needle
开始。
原则上,这应该比其他一些方法具有性能优势:
haystack
。 data.substring(0, input.length) === input