1802 Stimmen

Wie prüft man, ob eine Zeichenkette "mit" einer anderen Zeichenkette beginnt?

Wie würde ich das Äquivalent zu C#s String.StartsWith in JavaScript?

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

haystack.startsWith(needle) == true

Hinweis: Dies ist eine alte Frage, und wie in den Kommentaren erwähnt, führte ECMAScript 2015 (ES6) die .startsWith Methode. Zum Zeitpunkt der Erstellung dieser Aktualisierung (2015) Die Browserunterstützung ist noch lange nicht vollständig .

0voto

Ich bin mir nicht sicher, was Javascript angeht, aber in Typescript habe ich etwas gemacht wie

var str = "something";
(<String>str).startsWith("some");

Ich denke, es sollte auch bei js funktionieren. Ich hoffe, es hilft!

-1voto

immayankmodi Punkte 7210

Wenn Sie arbeiten mit startsWith() y endsWith() dann müssen Sie auf die führenden Leerzeichen achten. Hier ist ein vollständiges Beispiel:

var str1 = " Your String Value Here.!! "; // Starts & ends with spaces    
if (str1.startsWith("Your")) { }  // returns FALSE due to the leading spaces…
if (str1.endsWith("Here.!!")) { } // returns FALSE due to trailing spaces…

var str2 = str1.trim(); // Removes all spaces (and other white-space) from start and end of `str1`.
if (str2.startsWith("Your")) { }  // returns TRUE
if (str2.endsWith("Here.!!")) { } // returns TRUE

3 Stimmen

Dies ist ein sehr untypisches Verhalten: Die Zeichenfolge "abc" beginnt NICHT mit "abc". Genauer gesagt, geht ECMA 6 nicht von irgendeiner Art von String Trimming aus, so dass Whitespace exakt übereinstimmen muss, um eine startsWith-Übereinstimmung zu ergeben.

3 Stimmen

Was... wie soll das die Frage beantworten?

1 Stimmen

@DCShannon ist es nicht. Es ist unverständlicher Blödsinn.

-3voto

Nepaluz Punkte 631

Sie können auch alle Mitglieder eines Arrays zurückgeben, die mit einer Zeichenkette beginnen, indem Sie einen eigenen Prototyp / eine Erweiterung des Array-Prototyps erstellen, auch bekannt als

Array.prototype.mySearch = function (target) {
    if (typeof String.prototype.startsWith != 'function') {
        String.prototype.startsWith = function (str){
        return this.slice(0, str.length) == str;
      };
    }
    var retValues = [];
    for (var i = 0; i < this.length; i++) {
        if (this[i].startsWith(target)) { retValues.push(this[i]); }
    }
    return retValues;
};

Und sie zu benutzen:

var myArray = ['Hello', 'Helium', 'Hideout', 'Hamster'];
var myResult = myArray.mySearch('Hel');
// result -> Hello, Helium

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X