2012-12-25 16 views
7

Ich habe folgendes RegexMuster und string:Wie führe ich eine Regex auf einer Regex in Javascript?

var str="Is this all there is?"; 
var patt1=/is/gi; 

Ich mag würde nur den Haupt Ausdruck extrahieren is (ohne die Modifikatoren) von var patt1einen anderen regulären Ausdruck, die wir var patt2 für Argumente willen nennen .

Wie ist das in Vanilla JavaScript möglich?

Antwort

11

Ja, patt1 ist ein Regex-Objekt.

Sie könnten die Regex-Quelle von patt1.source erhalten.

> console.dir(patt1); 
    /is/gi 
    global: true 
    ignoreCase: true 
    lastIndex: 0 
    multiline: false 
    source: "is" 
    __proto__: /(?:)/ 
+2

+1 - Akzeptieren Sie diese Antwort nur, weil ich es zum ersten Mal sah - sonst gibt es zwischen ihnen nicht viel Unterschied zwei :) – technojas

9

Keine Notwendigkeit für einen regulären Ausdruck. Versuchen Sie folgendes:

> patt1.source 
"is" 
+0

+ 1 - Wow! Ich hatte keine Ahnung, dass diese Methode auf dem Regex-Objekt existiert. – technojas

0

Ich denke, was Sie brauchen, ist dies:

var patt1=/[is]/gi; 
alert(patt1.test());