Wie führe ich eine Groß-/Kleinschreibung-ignorierende Zeichenfolgenvergleich in JavaScript durch?
Antworten
Zu viele Anzeigen?Es gibt zwei Möglichkeiten für den Fall einer Groß-/Kleinschreibung-ignorierten Vergleich:
- Wandeln Sie Zeichenfolgen in Großbuchstaben um und vergleichen Sie sie dann mithilfe des strengen Operators (
===
). - 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));
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.
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);
}