2022 Benchmark für die Streicherforschung
から Die Antwort von Felix Kling und mit Tests, die ich mit den angegebenen Links durchgeführt habe.
Meistgenutzter Browser :
- Chrom (64%)
- Safari (19%)
- Neue Kante (4%)
- Firefox (3,26%)
- Samsung (2,86 %)
- Oper (2,12%)
Chrome und NE basieren beide auf Chromium => gleiche Leistung.
ci = Groß- und Kleinschreibung wird nicht berücksichtigt
/ = wie links
Ergebnisse der Tests
Stringlänge
Firefox
Safari
Chrom
kurz
zwischengespeicherte RegExp ci
zwischengespeicherte RegExp ci
indexOf & / ci
wert
RegExp & / ci
RegExp ci
RegExp & / ci
schlechter
lang
zwischengespeicherte RegExp
zwischengespeicherte RE & / ci & reg ci
indexOf
wert
indexOf ci
indexOf ci
RegExp
schlechter
Vergleich Operationen/Sek.
Browser
Firefox
Safari
Chrom
zwischengespeicherte RegExp
1.3M
425k
1.2M
diff
1.08x >
zwischengespeicherte RegExp Groß-/Kleinschreibung beachten
28M
31M
42M
diff
1.44/1.35x >
indexOf
27M
25M
1.9B
diff
70/76x >
indexOf case sensitive
13.8M
18.5M
1.9B
diff
137/103x >
Beste Methode für Firefox: zwischengespeicherte Regexp ohne Berücksichtigung der Groß-/Kleinschreibung
Chrome beste Methode: indexOf / indexOf case insensitive
Safari beste Methode: zwischengespeicherte RegExp ohne Berücksichtigung der Groß-/Kleinschreibung
Chrome hat weitaus bessere Leistungen als die beiden anderen.
Bester Kompromiss : indexOf : String.indexOf(substring) > -1
.
Anmerkung: Erinnern Sie daran, dass Sie, wenn Sie die indexOf case sensitive
Weise, wenn Sie ein String.toLowerCase()
Es werden einige Operationen hinzugefügt, so dass es dem unsensiblen Weg ziemlich ähnlich ist. In diesem Fall sollten Sie Ihre Teilzeichenkette herabsetzen avant den Suchprozess, nicht in ihm.
Regexe sind wirklich gut für komplexe und/oder Muster-Recherche/Ersatz, aber nicht für eine globale Suche, und das in allen Sprachen, wegen dem, was es ist.
0 Stimmen
Fragen Sie nach einer festen Teilzeichenkette, oder benötigen Sie einen regulären Ausdruck (ich bin etwas verwirrt durch die Verwendung der
regex
Tag)?1 Stimmen
Dieser Beitrag könnte hilfreich sein. stackoverflow.com/questions/1789945/javascript-string-contains
1 Stimmen
Wie wäre es, die Zeichenkette in ein Array um Leerzeichen herum aufzuteilen und eine Array-Kreuzung durchzuführen? stackoverflow.com/questions/1885557/
0 Stimmen
jsben.ch/#/aWxtF