2016-12-26 4 views
0

Ich habe einige Stoppwörter in einem Array, die aus gegebenem Text weggelassen werden müssen. Angenommen, die Stoppwörter sind [a, an, das, ist,,, und, oder, für, wie, für] der Regex wäre /\b(?:a|an|the|is|the|of|and|or|to|of|as|for)\b/ig.Dynamisch create regex - Javascript

Die Stoppwörter können variieren. Also habe ich versucht RegExp wie folgt zu verwenden

var s = 'a|an|the|is|the|of|and|or|to|of|as|for' var reg = new RegExp('/\b(?:' + s + ')\b/ig','i')

Aber die obige Art und Weise ich folgte funktioniert nicht. Wo gehe ich falsch?

Hier einige Code: https://repl.it/EwqY/7

Antwort

4

Wenn Sie den RexExp Konstruktor verwenden, die Sie nicht schließen die / Trennzeichen und Modifikatoren gehen in einem separaten Argument:

var reg = new RegExp('\\b(?:' + s + ')\\b','ig') 

Sie müssen auch Schrägstriche entkommen , weil sie auch das Präfix für das Vorkommen von Zeichenfolgen sind.

+1

Und auch Anti-Schrägstriche in String-Literalen entkommen –

+1

@ DenysSéguret Danke, das behoben. – Barmar