2012-12-25 21 views
7

मैं निम्नलिखित regex पैटर्न और स्ट्रिंग है:मैं जावास्क्रिप्ट में रेगेक्स पर रेगेक्स कैसे चला सकता हूं?

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

मैं सिर्फ var patt1 से मुख्य अभिव्यक्ति is (बिना संशोधक) एक और नियमित अभिव्यक्ति है, जो हम तर्क खातिर var patt2 कॉल कर सकते हैं का उपयोग कर निकालने के लिए चाहते हैं ।

वेनिला जावास्क्रिप्ट में यह कैसे संभव है?

उत्तर

11

हां, patt1 एक रेगेक्स ऑब्जेक्ट है।

आप patt1.source द्वारा रेगेक्स स्रोत प्राप्त कर सकते हैं।

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

+1 - इस जवाब को स्वीकार करना ही है क्योंकि मैं यह पहली बार देखा था - अन्यथा उन दोनों के बीच ज्यादा अंतर नहीं था दो :) – technojas

9

नियमित अभिव्यक्ति की कोई आवश्यकता नहीं है। इस प्रयास करें:

> patt1.source 
"is" 
+0

+ 1 - वाह! मुझे नहीं पता था कि यह विधि रेगेक्स ऑब्जेक्ट पर मौजूद है। – technojas

0

मुझे लगता है कि आप की जरूरत यह है:

var patt1=/[is]/gi; 
alert(patt1.test()); 
संबंधित मुद्दे