2017-06-26 2 views
0

Ich möchte alle Wörter, außer einem, aus einer Zeichenfolge mit JS Regex Match-Funktion zu erhalten. Bei einer Zeichenfolge testhello123worldtestWTF mit Ausnahme des Worts test würde das Ergebnis helloworldWTF lauten.Erhalten Sie alle WÖRTER außer einem bestimmten Wort

Ich weiß, dass ich es mit Look-Ahead-Funktionen tun muss, aber ich kann nicht genau herausfinden, wie genau. Ich kam mit dem folgenden Regex (?!test)[a-zA-Z]+(?=.*test), aber es funktioniert nur teilweise.

http://refiddle.com/refiddles/59511c2075622d324c090000

+2

Mögliches Duplikat von [So ersetzen Sie alle Vorkommen einer Zeichenfolge in JavaScript?] (Https://stackoverflow.com/questions/1144783/how-to-replace-all-occurrences-of-a-string-in- Javascript) –

+0

So bemerkte ich deine Frage ist seltsam. Sie sagten, Sie möchten nach "Test" suchen, aber in Ihren Ergebnissen haben Sie auch die 123 zusammen mit dem Test entfernt. War das ein Tippfehler? –

+0

Mit "Wort" meinte er '[a-zA-Z] +', ohne Ziffern. – streetturtle

Antwort

1

IMHO, würde ich versuchen, das inkriminierte Wort mit einem leeren String zu ersetzen, nicht wahr?

0

Lookarounds scheinen zuviel des Guten sein, damit es, können Sie einfach die test mit nichts ersetzen:

var str = 'testhello123worldtestWTF'; 
var res = str.replace(/test/g, ''); 
+0

Das Problem ist, dass ich alle gefundenen Wortvorkommen in "Wort" ändern möchte. Also muss ich das Wort Test an seinem Platz behalten. Für 'testhello123worldtestWTF' wäre mein gewünschtes Endergebnis ['test', 'word', 'word', 'test', 'word'] – stee1rat

0

Anstecken diese in Ihre refiddle die Ergebnisse produziert, die Sie suchen:

/(test)/g 

Es passt alle Vorkommen des Wortes "test" an, ohne unerwünschte Wörter/Buchstaben aufzunehmen. Sie können dies auf die Variable setzen, die Sie benötigen, um diese zu halten.

0

warnende Worte

Sehen, dass Sie keine festen Begrenzungszeichen in Ihrer eingegebenen Zeichenfolge haben, muss ich sagen, dass Sie nicht zuverlässig ein bestimmtes Wort ausschließen kann - zu einem gewissen Grad.

Zum Beispiel, wenn Sie test ausschließen mögen, könnte dies zu einem Problem führen, wenn der Eingang protester oder rotatestreet ist. Sie haben keine klare Abgrenzung von dem, was ein Wort ist, was dazu führt, dass Sie den Test ausschließen, wenn Sie es nicht gewollt haben.

Auf der anderen Seite, wenn Sie nur die Zeichenfolge test ignorieren möchten, ersetzen Sie einfach test durch eine leere Zeichenfolge, und Sie sind gut zu gehen.

Verwandte Themen