2016-05-27 6 views
0

Ich versuche, eine Suche zu implementieren, wo ich nur den Anfang des Wortes in Javascript und Fettdruck.Machen Sie die Suche Zeichenfolge fett, aber nur vom Anfang des Wortes

Also, wenn Sie nach "Choc" suchen, würde "Schokolade" angezeigt, aber wenn Sie nach "spät" suchen, würde Schokolade nicht angezeigt.

Ich habe:

if(queryString.match(new RegExp('/\b'+inputField.val()+'/', 'gi'))) 

Und dann das Wort zu markieren:

var tempName = queryString.replace(new RegExp('(^|\b)(' + inputField.val() + ')(|$)','ig'), '$1<strong>$2</strong>$3'); 

Aber nichts funktioniert so, wie ich gehofft hatte. Irgendwelche Ideen?

+0

Bitte geben Sie eine [jsfiddle] (https://jsfiddle.net). – dude

+0

Kann dein 'inputField.val()' ein Nicht-Wort-Zeichen (d. H. ':' Oder sogar 'Я') enthalten (oder vielmehr anfangen/enden)? –

+0

Wenn dies der Fall ist, müssen Sie zuerst [es zu entkommen] (http://stackoverflow.com/a/6969486/3894981). – dude

Antwort

1

Beispiel Spiel:

Demo oder Demo

RegExp:

/(^|\s)(late)/gmi 

oder

/\b(late)/gmi 

Dies entspricht:

Schokolade spät choco

Beispiel Ersatz:

var search = "Chocolate latechoco"; 
 
document.write(search.replace(/\b(late)/gmi, "<strong>$1</strong>"));

Beachten Sie auch, dass Ihr Suchbegriff inputField.val() immer maskiert werden sollte. Siehe this answer, um zu erfahren, wie.

Verwandte Themen