Heim >Web-Frontend >js-Tutorial >Implementieren der Methoden String.startsWith und endWith in Javascript_Javascript-Tipps

Implementieren der Methoden String.startsWith und endWith in Javascript_Javascript-Tipps

WBOY
WBOYOriginal
2016-05-16 15:56:201605Durchsuche

Bei der Arbeit mit dem String-Typ sind „startsWith(anotherString)“ und „endsWith(anotherString)“ sehr nützliche Methoden. Unter diesen bestimmt „startsWith“, ob die aktuelle Zeichenfolge mit „anotherString“ beginnt, und „endsWith“ bestimmt, ob sie endet. Beispiel:

"abcd".startsWith("ab"); // true
"abcd".startsWith("bc"); // false
"abcd".endsWith("cd");  // true
"abcd".endsWith("e");  // false
"a".startsWith("a");   // true
"a".endsWith("a");    // true

Diese beiden Methoden sind in Javascript leider nicht enthalten, Sie können sie also nur bei Bedarf selbst schreiben. Natürlich ist es nicht schwer zu schreiben.

if (typeof String.prototype.startsWith != 'function') {
 String.prototype.startsWith = function (prefix){
  return this.slice(0, prefix.length) === prefix;
 };
}

String.slice() ähnelt String.substring() darin, dass beide einen Teilstring erhalten, einige Rezensionen sagen jedoch, dass Slice effizienter ist. Der Grund, warum indexOf() hier nicht verwendet wird, ist, dass indexOf die gesamte Zeichenfolge scannt. Wenn die Zeichenfolge sehr lang ist, ist die Effizienz von indexOf sehr schlecht.

if (typeof String.prototype.endsWith != 'function') {
 String.prototype.endsWith = function(suffix) {
  return this.indexOf(suffix, this.length - suffix.length) !== -1;
 };
}

Im Gegensatz zu „startsWith“ kann indexOf in „endsWith“ verwendet werden. Der Grund dafür ist, dass nur die letzte Zeichenfolge gescannt wird. Der Vorteil gegenüber Slice besteht darin, dass die Zeichenfolge nicht kopiert werden muss, sondern nur direkt gescannt werden muss, sodass die Effizienz effizienter ist.

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn