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

我如何在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()方法,但它尚未在所有浏览器中受支持。 您需要使用Shim / polyfill将其添加到不支持它的浏览器上。 创建符合规范中规定的所有细节的实现有点复杂,并且此答案中定义的版本不会执行; 如果你想要一个忠实的垫片,使用:

  • Matthias Bynens的String.prototype.startsWith垫片或
  • es6-shim尽可能多地增加了ES6规格,包括String.prototype.startsWith
  • 一旦你完成了这个方法(或者你只支持已经有的浏览器和JavaScript引擎),你可以像这样使用它:

    "Hello World!".startsWith("He"); // true
    
    var haystack = "Hello world";
    var prefix = 'orl';
    haystack.startsWith(prefix); // false
    

    .lastIndexOf另一种替代.lastIndexOf

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

    这看起来向后通过haystack对于发生needle从指数开始0haystack 。 换句话说,它只检查haystack是否以needle开始。

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

  • 它不搜索整个haystack
  • 它不会创建新的临时字符串,然后立即丢弃它。

  • data.substring(0, input.length) === input
    
    链接地址: http://www.djcxy.com/p/12835.html

    上一篇: How to check if a string "StartsWith" another string?

    下一篇: when to use which