Wie man ermittelt, ob zwei Zeichenfolgen gleich sind, ist eine häufige Frage bei der Entwicklung einer Node.js-Anwendung, die einen Zeichenfolgenvergleich beinhaltet. Obwohl Node.js eine grundlegende Methode zum Vergleichen von Zeichenfolgen bereitstellt, stimmen die Vergleichsergebnisse unter bestimmten Umständen möglicherweise nicht überein. In diesem Artikel erfahren Sie, wie Sie zwei Zeichenfolgen in Node.js vergleichen und das Problem nicht übereinstimmender Vergleichsergebnisse lösen.
Die von Node.js bereitgestellte String-Vergleichsmethode
Node.js bietet Entwicklern eine grundlegende String-Vergleichsmethode: Verwenden Sie Vergleichsoperatoren (== und !=) oder den strikten Vergleichsoperatoren (=== und !==). Mit diesen Operatoren können zwei Zeichenfolgen verglichen werden, um festzustellen, ob sie gleich sind. Zum Beispiel:
const str1 = 'hello'; const str2 = 'Hello'; console.log(str1 == str2); // false console.log(str1 === str2); // false
In diesem Beispiel werden zwei Zeichenfolgen verglichen, ihre Inhalte sind nicht genau gleich und das Vergleichsergebnis ist falsch. Dies liegt daran, dass sowohl bei Vergleichsoperatoren als auch bei strikten Vergleichsoperatoren die Groß-/Kleinschreibung beachtet wird.
Wenn uns die Groß-/Kleinschreibung beim Vergleich von Zeichenfolgen egal ist, können Sie die folgende Methode verwenden:
const str1 = 'hello'; const str2 = 'Hello'; console.log(str1.toLowerCase() == str2.toLowerCase()); // true console.log(str1.toUpperCase() == str2.toUpperCase()); // true
Verwenden Sie die Methode toLowerCase() oder toUpperCase(), um die Zeichenfolge in umzuwandeln Geben Sie vor dem Vergleich Vollbuchstaben, Kleinbuchstaben oder Großbuchstaben ein. Auf diese Weise ignoriert das Vergleichsergebnis der beiden Zeichenfolgen die Groß-/Kleinschreibung.
Allerdings kann die obige Methode das Problem des String-Vergleichs in Node.js nicht vollständig lösen.
Da unterschiedliche Kodierungen und Zeichensätze unterschiedliche Sortierregeln und Reihenfolge haben, können unterschiedliche Zeichensätze zu falschen Vergleichsergebnissen führen. Das Folgende ist ein Beispiel:
const str1 = 'äpple'; const str2 = 'apple'; console.log(str1 == str2); // false console.log(str1.localeCompare(str2)); // 0
Beim Vergleich mit Vergleichsoperatoren ist das Ergebnis falsch; bei Verwendung der Methode localeCompare() ist das Vergleichsergebnis jedoch 0, was darauf hinweist, dass die zwei Saiten sind gleich. Dies liegt daran, dass die Methode localeCompare() die lokale Sortierreihenfolge zum Vergleichen von Zeichenfolgen verwendet. Im Deutschen steht der Buchstabe „ä“ in alphabetischer Reihenfolge nach dem Buchstaben „a“.
So lösen Sie das Problem der Nichtübereinstimmung der String-Vergleichsergebnisse
Wenn die Anwendung einen String-Vergleich erfordert, ist das korrekte Vergleichsergebnis entscheidend. In Node.js können Sie die folgende Methode verwenden, um das Problem nicht übereinstimmender String-Vergleichsergebnisse zu lösen:
const str1 = 'äpple'; const str2 = 'apple'; console.log(str1.localeCompare(str2)); // 0
const stringSimilarity = require('string-similarity'); const str1 = 'hello world'; const str2 = 'hello everyone'; const similarity = stringSimilarity.compareTwoStrings(str1, str2); console.log(similarity); // 0.325
Das obige ist der detaillierte Inhalt vonSind NodeJS-Strings gleich?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!