2009-08-03 16 views
19

यहाँ मामला है: मैं तत्व है जो रेगुलर एक्सप्रेशन से मेल पता लगाना चाहते हैं ...रेगेक्स से मेल खाने वाले सभी तत्वों को कैसे लूप करें?

targetText = "SomeT1extSomeT2extSomeT3extSomeT4extSomeT5extSomeT6ext"

और मैं इस

तरह जावास्क्रिप्ट में regex का उपयोग
reg = new RegExp(/e(.*?)e/g); 
var result = reg.exec(targetText); 

और मुझे केवल पहला मिलता है, लेकिन अनुवर्ती नहीं .... मैं केवल टी 1 प्राप्त कर सकता हूं, लेकिन टी 2, टी 3 ... ...

+2

क्या कोई इसे करने के लिए लूप तरीका सुझा सकता है? – DNB5brims

उत्तर

34
var reg = /e(.*?)e/g; 
var result; 
while((result = reg.exec(targetText)) !== null) { 
    doSomethingWith(result); 
} 
+13

नए RegExp का उपयोग करने के बजाय और फिर regexp में प्लगिंग करने के बजाय, बस 'reg =/e (। *>) E/g करें;' नए ऑपरेटर का उपयोग करना अनावश्यक है जब तक कि आप इसे स्ट्रिंग नहीं खिला रहे हों। यह भी सुनिश्चित करें कि आप इसे वैश्विक ध्वज (/ g) के साथ ध्वजांकित करें या आप अनंत लूप में समाप्त हो सकते हैं। – Frug

+4

ध्यान दें कि रीजिक्स को इस तरीके से उपयोग करने से पहले किसी ऑब्जेक्ट को असाइन किया जाना चाहिए: '/ e (। *?) E/.exec (...) 'एक अनंत लूप देगा। – ARM

+0

मुझे document.body.innerHTML –

2
targetText = "SomeT1extSomeT2extSomeT3extSomeT4extSomeT5extSomeT6ext"  
reg = new RegExp(/e(.*?)e/g); 
var result; 
while (result = reg.exec(targetText)) 
{ 
    ... 
} 
9

ही आप कार्यकारी के साथ पाश के साथ-साथ कर सकते थे, कार्यकारी() के बजाय स्ट्रिंग पर match() का उपयोग करें। मैच आपको सभी मैचों को एक ही समय में देना चाहिए। मुझे लगता है कि आप वैश्विक विनिर्देशक को भी छोड़ सकते हैं।

reg = new RegExp(/e(.*?)e/); 
var matches = targetText.match(reg); 
+6

w3schools से लिंक न करें। वे डब्ल्यू 3 सी से असंबद्ध हैं और बहुत सारी गलत जानकारी है। Http://w3fools.com देखें। – dbkaplun

+2

@ माइंड वायरस - यदि आप जांच करने के लिए परेशान हैं, तो उन्होंने w3fools.com की ओर इशारा करते हुए बहुत सी चीजें साफ़ कर दी हैं। मैं अभी भी उन्हें त्वरित, संसाधन के रूप में उपयोग नहीं करता हूं। कुछ आसान दिखने के लिए किसी और की तरह के एंड आर सी पर धोखा शीट का उपयोग कर सकते हैं। – tvanfosson

+1

मध्यवर्ती देव के रूप में, मुझे पहले से ही w3schools में अच्छी आधे दर्जन स्पष्ट त्रुटियों का सामना करना पड़ा है। वे मेरी पार्टी सूची से बाहर हैं। –

संबंधित मुद्दे

 संबंधित मुद्दे