ভেরিয়েবলের সাথে সম্মিলিতভাবে রেইগেক্স প্যাটার্ন কীভাবে তৈরি করবেন, এরকম কিছু:
var test ="52";
var re = new RegExp("/\b"+test+"\b/");
alert('51,52,53'.match(re));
ধন্যবাদ
উত্তর:
var re = new RegExp("/\b"+test+"\b/");
\bস্ট্রিংয়ে আক্ষরিক একটি ব্যাকস্পেস অক্ষর। একটি স্ট্রিং আক্ষরিক মধ্যে একটি রেজেেক্স স্থাপন করার সময় আপনার পালানোর আরও এক দফা দরকার:
var re = new RegExp("\\b"+test+"\\b");
( //আপনারও এই প্রসঙ্গে প্রয়োজন নেই ))
new RegExp('\b'+test+'\b');
When putting a regex in a string literal you need one more round of escaping; এটি সম্পর্কে কোনও পটভূমি তথ্য আছে (কারণগুলি)?
ES2015 (ওরফে ES6) এর সাহায্যে RegExp নির্মাণের সময় আপনি টেম্পলেট লিটারালগুলি ব্যবহার করতে পারেন :
let test = '53'
const regexp = new RegExp(`\\b${test}\\b`, 'gi') // showing how to pass optional flags
console.log('51, 52, 53, 54'.match(regexp))
new। তবে অন্যান্য অবজেক্টের সাথে ধারাবাহিকতার জন্য যেখানে এটি সত্য নাও থাকতে পারে এবং সাধারণভাবে স্পষ্টতার জন্য আমি সর্বদা ব্যবহার করবnew।