1331 Stimmen

Wie vergleicht man Zeichenfolgen ohne Groß-/Kleinschreibung?

Wie führe ich eine Groß-/Kleinschreibung-ignorierende Zeichenfolgenvergleich in JavaScript durch?

5voto

Sohail Arif Punkte 253

Es gibt zwei Möglichkeiten für den Fall einer Groß-/Kleinschreibung-ignorierten Vergleich:

  1. Wandeln Sie Zeichenfolgen in Großbuchstaben um und vergleichen Sie sie dann mithilfe des strengen Operators (===).
  2. Mustervergleich unter Verwendung von Zeichenfolgenmethoden:

Verwenden Sie die "search" Zeichenfolgenmethode für eine Groß-/Kleinschreibung-ignorierte Suche.

    // 1. Weg

    var a = "Apfel";
    var b = "APFEL";
    if (a.toUpperCase() === b.toUpperCase()) {
      alert("gleich");
    }

    // 2. Weg

    var a = "Null und nichtig";
    document.write(a.search(/null/i));

4voto

Neetesh Dadwariya Punkte 619

Ich mag diese schnelle Kurzform -

export const equalsIgnoreCase = (str1, str2) => {
    return (!str1 && !str2) || (str1 && str2 && str1.toUpperCase() == str2.toUpperCase())
}

Schnell in der Verarbeitung und tut, was es soll.

4voto

Alexander Abakumov Punkte 12151

Wenn beide Zeichenfolgen der gleichen bekannten Lokalisierung entsprechen, können Sie möglicherweise den Intl.Collator-Objekt wie folgt verwenden:

function equalIgnoreCase(s1: string, s2: string) {
    return new Intl.Collator("en-US", { sensitivity: "base" }).compare(s1, s2) === 0;
}

Natürlich sollten Sie den Collator für eine bessere Effizienz zwischenspeichern.

Der Vorteil dieser Methode besteht darin, dass sie viel schneller sein sollte als die Verwendung von RegExps und auf einer äußerst anpassbaren (siehe Beschreibung der Konstruktorparameter locales und options im obigen Artikel) Reihe von sofort einsatzbereiten Kollatoren basiert.

3voto

Parth Raval Punkte 3571
str = 'Lol', str2 = 'lOl', regex = new RegExp('^' + str + '$', 'i');
if (regex.test(str)) {
    console.log("true");
}

3voto

David S Lee Punkte 1795

Auch wenn diese Frage bereits beantwortet wurde, habe ich einen anderen Ansatz, um RegExp und match zu verwenden, um die Groß- und Kleinschreibung zu ignorieren. Bitte sehen Sie sich meinen Link an https://jsfiddle.net/marchdave/7v8bd7dq/27/

$("#btnGuess").click(guessWord);

function guessWord() {

  var letter = $("#guessLetter").val();
  var word = 'ABC';
  var pattern = RegExp(letter, 'gi'); // pattern: /a/gi

  var result = word.match(pattern);
  alert('Groß-/Kleinschreibung ignorieren:' + result);
}

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