যদি আপনার রেজেক্স বিশ্বব্যাপী হয় এবং আপনি ক্যাপচার করছেন তবে আপনাকে অবশ্যই এক্সিকিউট ব্যবহার করতে হবে। মিল আপনার সমস্ত ক্যাপচার ফেরত দেবে না।
ম্যাচটি যখন মিলবে তখন কেবল দুর্দান্ত (ক্যাপচারিং নয়) দুর্দান্ত কাজ করে। আপনি এটি একবার চালান এবং এটি সমস্ত ম্যাচের একটি অ্যারে দেয়। (যদিও রেজেক্সটি বিশ্বব্যাপী না হলে ম্যাচটি ক্যাপচারগুলি অনুসরণ করে ম্যাচটি দেখায়)
ক্যাপচার করার সময় এক্সিকিউট হ'ল আপনি যা ব্যবহার করেন এবং প্রতিবার এটি কার্যকর করা হলে এটি ম্যাচটি দেয় এবং তারপরে ক্যাপচারগুলি অনুসরণ করে। (ম্যাচ পুরো ম্যাচটি ক্যাপচারের পরে দেওয়ার পদ্ধতিতে আচরণ করবে, কেবলমাত্র যখন রেজেক্স বিশ্বব্যাপী নয়)।
এক্সেকের সাথে আর একটি ব্যবহার ম্যাচের সূচক বা অবস্থান পাচ্ছে। আপনার রেজেেক্সের জন্য যখন কোনও পরিবর্তনশীল থাকে, আপনি .lastIndex ব্যবহার করতে পারেন এবং মিলের অবস্থানটি পেতে পারেন। একটি রেজেক্স অবজেক্টে .lastIndex থাকে এবং রেজেক্স অবজেক্টটি হ'ল আপনি কী। এক্সেক করেন on ডট ম্যাচটি স্ট্রিংয়ে সম্পন্ন হয় এবং আপনি তখন রেজেক্স অবজেক্ট ডট লাস্ট ইন্ডেক্স করতে সক্ষম হবেন না
একটি স্ট্রিংয়ের সাথে ম্যাচ ফাংশন থাকে, যা একটি রেজেক্স পাস হয়। এবং একটি রেজেক্সে এক্সিকিউটিভ ফাংশন রয়েছে এবং একটি স্ট্রিং উত্তীর্ণ হয়
এক্সিকিউট আপনি একাধিক বার চালানো। ম্যাচ আপনি একবার চালানো
ক্যাপচার না করার সময় ম্যাচটি ব্যবহার করা ভাল এবং ক্যাপচার করার সময় আপনি এক্সিকিউটি ব্যবহার করতে পারেন যা ক্যাপচার পাওয়ার জন্য ভাল কারণ এটি ক্যাপচার করার সময় আপনি যদি ম্যাচ ব্যবহার করেন তবে দেখুন যখন রেজেক্স গ্লোবাল নয় তখন ক্যাপচারগুলি দেখায় তবে তা না রেজেক্স বিশ্বব্যাপী হলে ক্যাপচারগুলি দেখায় না।
> "azb".match(/a(z)b/);
[ "azb", "z" ]
> "azb".match(/a(z)b/g);
[ "azb" ]
>
আরেকটি বিষয় হ'ল আপনি যদি এক্সিকিউটি ব্যবহার করেন তবে নোটটি যা রেজেক্সকে ডেকে আনা হয়েছে, তারপরে আপনি যদি রেজেক্সের জন্য একটি ভেরিয়েবল ব্যবহার করেন তবে আপনার আরও ক্ষমতা থাকবে
আপনি যখন রেজেক্সের জন্য ভেরিয়েবলটি ব্যবহার করবেন না তখন আপনি ম্যাচগুলি পাবেন না, তাই এক্সিকিউটিভ ব্যবহার করার সময়, রেইগেক্সের জন্য ভেরিয়েবলটি ব্যবহার করুন
> /./g.exec("abc")
[ "a" ]
> /./g.exec("abc")
[ "a" ]
> /./g.exec("abc")
[ "a" ]
>
> /[a-c]/g.exec("abc")
[ "a" ]
> /[a-c]/g.exec("abc")
[ "a" ]
>
> var r=/[a-c]/g
> r.exec("abc")
[ "a" ]
> r.exec("abc")
[ "b" ]
> r.exec("abc")
[ "c" ]
> r.exec("abc")
null
>
এবং এক্সিকিউট দিয়ে, আপনি ম্যাচের "সূচক" পেতে পারেন get
> var r=/T/g
> r.exec("qTqqqTqqTq");
[ "T" ]
> r.lastIndex
2
> r.exec("qTqqqTqqTq");
[ "T" ]
> r.lastIndex
6
> r.exec("qTqqqTqqTq");
[ "T" ]
> r.lastIndex
9
> r.exec("qTqqqTqqTq");
null
> r.lastIndex
0
>
সুতরাং যদি আপনি সূচকগুলি বা ক্যাপচারিং চান, তবে এক্সিকিউটিভ ব্যবহার করুন (মনে রাখবেন যে আপনি দেখতে পাচ্ছেন যে "সূচক" এর সাথে এটি "সূচক" দেয় এটি সত্যই একটি নবম ঘটনা, এটি 1 থেকে গণনা করা হয়) সুতরাং আপনি যথাযথ আবিষ্কার করতে পারেন ১. বিয়োগ করে সূচক 1 এবং আপনি দেখতে পাচ্ছেন যে এটি 0 - সর্বশেষতম 0 দেয় - খুঁজে পাওয়া যায় নি।
এবং আপনি যদি ম্যাচটি প্রসারিত করতে চান, আপনি ক্যাপচার করার সময় আপনি এটি ব্যবহার করতে পারেন, কিন্তু যখন রেজেক্স বিশ্বব্যাপী নয়, এবং যখন আপনি এটির জন্য করেন, তখন অ্যারের সামগ্রীগুলি সমস্ত ম্যাচ নয়, তবে পূর্ণ ম্যাচ পরে ক্যাপচার।
execসমস্ত উপ-নির্বাচন পেতে আপনি লুপ করেছেন ।