Markieren Sie mehrere Suchbegriffe in der Suche

7

Ich verwende diesen Code, um Suchbegriffe zu markieren:

%Vor%

hebt jedoch nur ein Keyword hervor. Wenn der Benutzer mehr als ein Keyword eingibt, wird die Suche eingegrenzt, aber kein Wort wird hervorgehoben. Wie kann ich mehr als ein Wort hervorheben?

    
input 03.05.2010, 11:02
quelle

8 Antworten

25

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.

    
user187291 03.05.2010, 11:14
quelle
14

PHP & gt; 5.3.0, probiere preg_filter ()

aus %Vor%     
goldsky 24.04.2015 05:47
quelle
4

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%     
Yacoby 03.05.2010 11:14
quelle
4

Hier ist eine einfache Funktion, um nur passenden Text hervorzuheben.

%Vor%

ruft die Funktion

auf     
asi_x 07.08.2012 12:25
quelle
3

Markieren Sie mehrere Suchbegriffe in der Suche, einschließlich Umlauten

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.

Beispiel

Suchbegriff:
Su Shamp

Text:
So glänzendes Shampoo

Ergebnis:
Su n shiny Shap oo

Der Code, den ich benutzt habe:

%Vor%     
Heffa Fuzzel 13.07.2016 08:49
quelle
1

wie von user187291 vorgeschlagen, ändern Sie einfach den folgenden Code, um Text mit gelbem Hintergrund zu markieren.

%Vor%     
Fou 23.07.2012 04:58
quelle
0

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 ...

Ссылка

    
Rik Heywood 03.05.2010 11:13
quelle
0

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%     
RockwoodON 17.01.2015 02:03
quelle

Tags und Links