猿问

如何检查一个字符串是否与另一个字符串“开始”?

如何检查一个字符串是否与另一个字符串“开始”?

我怎么写C#的等价物?String.StartsWith用JavaScript?

var haystack = 'hello world';var needle = 'he';haystack.startsWith(needle) == true

注:这是一个老问题,正如ECMAScript 2015(ES6)介绍的评论中指出的.startsWith方法。然而,在编写本更新时(2015年)浏览器支持还远未完成。.


慕尼黑5688855
浏览 455回答 3
3回答

蝴蝶不菲

你可以使用ECMAScript 6String.prototype.startsWith()方法,但它是尚未在所有浏览器中支持..您可能需要使用shim/poly填充将其添加到不支持它的浏览器上。创建符合规范中列出的所有细节有点复杂。如果你想要一个忠实的垫片,可以使用:马蒂亚斯拜恩斯氏String.prototype.startsWith希姆,或这个西姆,这将尽可能多地反映ES6规范,包括String.prototype.startsWith.一旦您使用了该方法(或者您只支持已经有它的浏览器和JavaScript引擎),您可以这样使用它:"Hello World!".startsWith("He"); // truevar 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
随时随地看视频慕课网APP

相关分类

JavaScript
我要回答