मुझे जावास्क्रिप्ट में मैच बनाम exec के लिए कुछ स्पष्टीकरण की आवश्यकता है; here कुछ एक का कहना है किजावास्क्रिप्ट में वीएस निष्पादन
लेकिन सब से पहले तुम मेरे उदाहरण में देख के रूप में यह स्थिति नहीं है "एक वैश्विक नियमित अभिव्यक्ति के साथ कार्यकारी एक पाश में इस्तेमाल किया जा करने के लिए है"; मेरे उदाहरण में वैश्विक नियमित अभिव्यक्ति के साथ निष्पादन एक सरणी में सभी मैचों को वापस कर रहा है! दूसरा, वे कहते हैं कि String.match के लिए यह सभी मैचों को लौटाने की ज़रूरत नहीं है! लेकिन फिर से यह मेरे उदाहरण में नहीं हो रहा है और यह सिर्फ इनपुट स्ट्रिंग को वापस कर रहा है? क्या मैंने कुछ गलत समझा/किया है?
var myString = "[22].[44].[33].";
var myRegexp = /.*\[(\d*)*\].*\[(\d*)*\].*\[(\d*)*\].*/g;
var execResult = myRegexp.exec(myString);
console.log(execResult.length);
console.log(execResult[1]);// returns 22 and execResult has all of my matches from index 1 to the length of array
var matchResult = myString.match(myRegexp);
console.log(matchResult.length);
console.log(matchResult);// returns just myString which is "[22].[44].[33]."! Why is that?
मेरा मानना है कि यह कहना "तो अगर आप पर कब्जा समूह नहीं हैं, कार्यकारी आवश्यक है" भ्रामक है, '.match के बाद से()' स्पष्ट रूप से सभी निर्दिष्ट कब्जा कर लिया समूहों की एक सरणी वापसी करता है। आप अपनी पहली वाक्य में उतना ही मतलब देते हैं और आप स्पष्ट रूप से जानते हैं कि प्रत्येक कैसे काम करता है। हो सकता है कि आप "फ्लैग फ्लैग और '.exec()' का उपयोग करके एक या अधिक कैप्चर समूहों को दोबारा लागू करने की ज़रूरत है, तो" –