reguläre Ausdrücke ist der Weg zu gehen!
%Vor%Um die Groß- und Kleinschreibung nicht zu berücksichtigen, fügen Sie 'i' zum regulären Ausdruck hinzu
%Vor%Hinweis: Für nicht-englische Buchstaben wie "ä" können die Ergebnisse je nach Gebietsschema variieren.
Vorausgesetzt, die Wörter werden als Leerzeichen getrennt eingegeben, können Sie einfach explode
verwenden %Vor%Auch wenn Sie sicherstellen möchten, dass es nicht mehrere Leerzeichen gibt, möchten Sie sie möglicherweise zuerst aus dem String entfernen
%Vor%Sie müssen dann ein Ersatzarray generieren
%Vor%Dann
%Vor%Also zusammenlegen
%Vor% Ich habe die zuvor geschriebene Regex verwendet und \w
durch [A-Za-z0-9_äöüÄÖÜ]
ersetzt. Wie Sie sehen, habe ich die Umlaute äöüÄÖÜ
hinzugefügt.
Ich habe auch das \b
entfernt, so dass es mit jedem Aussehen des Suchbegriffs übereinstimmt.
Suchbegriff:
Su Shamp
Text:
So glänzendes Shampoo
Ergebnis:
Su n shiny Shap oo
Teilt Ihre Suchanfrage in Wörter auf und markiert sie dann einzeln.
Es könnte jedoch besser sein, die Hervorhebung in Javascript durchzuführen. Der "contains" -Wähler von jQuery wird wahrscheinlich helfen, Probleme beim Ersetzen von Markup-Elementen zu vermeiden, wenn Sie gehen ...
Bei den anderen Lösungen wird möglicherweise die Groß- / Kleinschreibung nicht beachtet, aber die Groß- / Kleinschreibung der ursprünglichen Zeichenfolge wird nicht beibehalten. Wenn Sie also nach "st" suchen, wird "ST" gefunden, aber als "st" hervorgehoben.
Ich benutze folgendes. Es bildet zuerst das replace-Array und verwendet dann str_replace () mit Array-Parametern - wodurch Rekursion vermieden wird.
%Vor%