match
স্ট্রিংটি একটি নিয়মিত অভিব্যক্তির সাথে মেলে কিনা তা জানার জন্য আমি অনেক সময় স্ট্রিং ফাংশনটি ব্যবহার করছি ।
if(str.match(/{regex}/))
এর মধ্যে কি কোনও পার্থক্য রয়েছে:
if (/{regex}/.test(str))
তারা কি একই ফল দেবে বলে মনে হচ্ছে?
match
স্ট্রিংটি একটি নিয়মিত অভিব্যক্তির সাথে মেলে কিনা তা জানার জন্য আমি অনেক সময় স্ট্রিং ফাংশনটি ব্যবহার করছি ।
if(str.match(/{regex}/))
এর মধ্যে কি কোনও পার্থক্য রয়েছে:
if (/{regex}/.test(str))
তারা কি একই ফল দেবে বলে মনে হচ্ছে?
উত্তর:
প্রথমে, প্রতিটি ফাংশন কী করে তা দেখুন:
regexObject । পরীক্ষা ( স্ট্রিং )
একটি নিয়মিত প্রকাশ এবং একটি নির্দিষ্ট স্ট্রিংয়ের মধ্যে ম্যাচের জন্য অনুসন্ধান চালায়। রিটার্নস সত্য বা মিথ্যা ।
স্ট্রিং । ম্যাচ ( RegExp )
নিয়মিত অভিব্যক্তির বিরুদ্ধে স্ট্রিংয়ের সাথে মিল রেখে ম্যাচগুলি পুনরুদ্ধার করতে ব্যবহৃত হয়। ম্যাচগুলির সাথে বা
null
যদি কিছুই না থাকে তবে একটি অ্যারে প্রদান করে ।
যেহেতু null
মূল্যায়ন করে false
,
if ( string.match(regex) ) {
// There was a match.
} else {
// No match.
}
অভিনয় সম্পর্কে কোনও পার্থক্য আছে?
হ্যাঁ । আমি এই সংক্ষিপ্ত নোটটি এমডিএন সাইটে পেয়েছি :
আপনার যদি স্ট্রিংটি নিয়মিত এক্সপ্রেশন রেজিপ্সপ-এর সাথে মেলে কিনা তা জানতে প্রয়োজন, regexp.test (স্ট্রিং) ব্যবহার করুন।
পার্থক্য কি তাৎপর্যপূর্ণ?
উত্তরটি আরও একবার হ্যাঁ ! এই জেএসফ্রি আমি একসাথে রেখেছি ব্রাউজারের উপর নির্ভর করে পার্থক্যটি 30% - ~ 60% দেখায় :
.test
আপনি যদি দ্রুত বুলিয়ান চেক চান তবে ব্যবহার করুন । ব্যবহার করুন .match
যখন ব্যবহার সব ম্যাচ পুনরুদ্ধার করতে g
বিশ্বব্যাপী পতাকা।
.test()
। :)
আপনার regexp এ বিশ্বব্যাপী পতাকাটি বিবেচনা করতে ভুলবেন না:
var reg = /abc/g;
!!'abcdefghi'.match(reg); // => true
!!'abcdefghi'.match(reg); // => true
reg.test('abcdefghi'); // => true
reg.test('abcdefghi'); // => false <=
এর কারণ এটি যখন একটি নতুন ম্যাচ পাওয়া যায় তখন রেজিএক্সপাস্ট লাস্ট ইন্ডেক্সের উপর নজর রাখে।
.test()
? .test()
স্ট্রিংয়ের একটি মিলে যাওয়া রিজেপ্সপ আছে কিনা তা পরীক্ষা করে দেখার বিষয় নয় ?
এটি আমার মানদণ্ডের ফলাফল
পরীক্ষা 4,267,740 অপ্স / সেকেন্ড 32 1.32% (60 টি নমুনাযুক্ত)
এক্সিকিউশন 3,649,719 অপস / সেকেন্ড ± 2.51% (60 টি নমুনাযুক্ত)
ম্যাচ 3,623,125 অপস / সেকেন্ড 85 1.85% (62 টি নমুনাযুক্ত)
সূচক 6,230,325 অপস / সেকেন্ড 95 0.95% (62 টি নমুনা দেওয়া)
পরীক্ষার পদ্ধতিটি ম্যাচের পদ্ধতির চেয়ে দ্রুত, তবে দ্রুততম পদ্ধতিটি ইনডেক্স অফ