501 Stimmen

Enthält Groß- und Kleinschreibung nicht berücksichtigt

Ich habe die folgenden:

if (referrer.indexOf("Ral") == -1) { ... }

Was ich gerne mache, ist Ral Groß- und Kleinschreibung nicht berücksichtigt werden, so dass sie RAl , rAl usw. und passen trotzdem.

Gibt es eine Möglichkeit zu sagen, dass Ral muss die Groß- und Kleinschreibung nicht beachtet werden?

4 Stimmen

Ich denke, dass die Groß-/Kleinschreibung nicht berücksichtigende Regex die elegantere Lösung ist, aber jeder sollte die Fallstricke beim Erstellen einer RegExp direkt aus Benutzereingaben. Zum Beispiel könnte ein Benutzer eingeben * und es würde ein Fehler in der RegExp Konstrukteur. Bei der akzeptierten Lösung gibt es dieses Problem nicht.

9voto

Bakarali Sunasra Punkte 313

Das können Sie versuchen

str = "Wow its so COOL"
searchStr = "CoOl"

console.log(str.toLowerCase().includes(searchStr.toLowerCase()))

7voto

Whip Punkte 1453

Hier sind die Optionen gemäß ES6 in abnehmender Reihenfolge der Leistung

Enthält

if (referrer.toLowerCase().includes("Ral".toLowerCase())) { ... }

IndexOf (dies liefert manchmal ähnliche oder bessere Ergebnisse als Includes)

if (referrer.toLowerCase().indexOf("Ral".toLowerCase()) !== -1) { ... }

Spiel

if (referrer.match(new RegExp("Ral", 'i'))) { ... }

Benchmark-Ergebnisse: https://jsben.ch/IBbnl

0 Stimmen

Match erzielt die niedrigsten Werte in Ihrem jsbench, da Sie die RegExp für jedes Element in der Iteration neu erstellt haben. Wenn Sie die "neue RegExp" aus der Schleife herausnehmen, gewinnt Match, wie es sollte.

0 Stimmen

OP nicht erwähnen, er braucht, um diese in einer Schleife laufen und seine nicht eine gemeinsame Nutzung Fall entweder. Wenn Sie es in einer Schleife tun, dann ja Spiel könnte bevorzugt werden.

6voto

alex_1948511 Punkte 4237

Beispiel für eine beliebige Sprache:

'My name is '.toLocaleLowerCase().includes(''.toLocaleLowerCase())

0 Stimmen

Wow. Ich fand es so nützlich. Ich danke Ihnen dafür.

5voto

Kendall Frey Punkte 41152
if (referrer.toUpperCase().indexOf("RAL") == -1) { ...

0 Stimmen

@Domenic: Bei allem Respekt für die türkische Kultur, die Türkei sollte berücksichtigen. eine Rechtschreibreform, um diesen Aspekt zu vereinfachen. China hat eine Reihe von Vereinfachungsreformen und die Türkei hat weniger als 10 % der Bevölkerung Chinas und ein viel einfacheres Alphabet. Es ist machbar.

3voto

Diganta Kumar Punkte 3569

Um eine bessere Suche durchzuführen, verwenden Sie den folgenden Code,

var myFav   = "javascript";
var theList = "VB.NET, C#, PHP, Python, JavaScript, and Ruby";

// Check for matches with the plain vanilla indexOf() method:
alert( theList.indexOf( myFav ) );

// Now check for matches in lower-cased strings:
alert( theList.toLowerCase().indexOf( myFav.toLowerCase() ) );

Im ersten alert() gab JavaScript "-1" zurück - mit anderen Worten, indexOf() fand keine Übereinstimmung: Das liegt einfach daran, dass "JavaScript" in der ersten Zeichenkette kleingeschrieben und in der zweiten Zeichenkette richtig großgeschrieben ist. Um mit indexOf() eine Suche ohne Berücksichtigung der Groß- und Kleinschreibung durchzuführen, können Sie beide Zeichenketten entweder groß oder klein schreiben. Das bedeutet, dass JavaScript, wie in der zweiten alert(), nur nach dem Vorkommen der gesuchten Zeichenkette sucht und die Großschreibung ignoriert.

Referenz, http://freewebdesigntutorials.com/javaScriptTutorials/jsStringObject/indexOfMethod.htm

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