উদাহরণস্বরূপ:
function(input){
var testVar = input;
string = ...
string.replace(/ReGeX + testVar + ReGeX/, "replacement")
}
তবে এটি অবশ্যই কাজ করছে না :) এটি করার কোনও উপায় আছে কি?
উদাহরণস্বরূপ:
function(input){
var testVar = input;
string = ...
string.replace(/ReGeX + testVar + ReGeX/, "replacement")
}
তবে এটি অবশ্যই কাজ করছে না :) এটি করার কোনও উপায় আছে কি?
উত্তর:
const regex = new RegExp(`ReGeX${testVar}ReGeX`);
...
string.replace(regex, "replacement");
মন্তব্য কিছু প্রতি, এটা খেয়াল করা জরুরী জরুরী আপনি চাইবেন যে অব্যাহতি পরিবর্তনশীল যদি দূষিত সামগ্রী জন্য সম্ভাব্য (যেমন পরিবর্তনশীল ব্যবহারকারীর ইনপুট থেকে আসে)
2019 এ, এটি সাধারণত টেমপ্লেট স্ট্রিং ব্যবহার করে লেখা হবে এবং উপরের কোডটি আপডেট করা হয়েছে। আসল উত্তরটি ছিল:
var regex = new RegExp("ReGeX" + testVar + "ReGeX");
...
string.replace(regex, "replacement");
regex
প্রকাশ করতে চান তবে আমাকে কী করতে হবে তা আমাকে জানান
/\w+\//i
হয়ে যায়new RegExp("\\w+/", "i")
আপনি RegExp অবজেক্টটি ব্যবহার করতে পারেন:
var regexstring = "whatever";
var regexp = new RegExp(regexstring, "gi");
var str = "whateverTest";
var str2 = str.replace(regexp, "other");
document.write(str2);
তারপরে আপনি যে regexstring
কোনও উপায়ে নির্মাণ করতে পারেন।
আপনি এটি সম্পর্কে এখানে আরও পড়তে পারেন ।
জাভাস্ক্রিপ্টে কোনও ভেরিয়েবল থেকে নিয়মিত এক্সপ্রেশন তৈরি করতে আপনাকে RegExp
স্ট্রিং প্যারামিটার দিয়ে কনস্ট্রাক্টর ব্যবহার করতে হবে ।
function reg(input) {
var flags;
//could be any combination of 'g', 'i', and 'm'
flags = 'g';
return new RegExp('ReGeX' + input + 'ReGeX', flags);
}
অবশ্যই, এটি একটি খুব নিষ্পাপ উদাহরণ। এটি ধরে নেওয়া হয় যে input
নিয়মিত প্রকাশের জন্য যথাযথভাবে পালানো হয়েছে। আপনি যদি ব্যবহারকারী-ইনপুট নিয়ে কাজ করে থাকেন বা বিশেষ চরিত্রের সাথে মিলে যাওয়া আরও সহজ করে তুলতে চান তবে আপনাকে বিশেষ অক্ষরগুলি থেকে বাঁচতে হবে :
function regexEscape(str) {
return str.replace(/[-\/\\^$*+?.()|[\]{}]/g, '\\$&')
}
function reg(input) {
var flags;
//could be any combination of 'g', 'i', and 'm'
flags = 'g';
input = regexEscape(input);
return new RegExp('ReGeX' + input + 'ReGeX', flags);
}
ReGeX
পাঠ্য মুছে ফেলা হলে এটি কেবল আমার জন্য কাজ করেছিল । সুতরাং আমি ব্যবহার করেছি:return new RegExp(input, flags);
আপনি যদি এস template টেমপ্লেটের আক্ষরিক ব্যবহার করছেন তবে এটি একটি বিকল্প ...
string.replace(new RegExp(`ReGeX${testVar}ReGeX`), "replacement")
^[^\s]{${4},${32}}$
); রপ্তানি কনট বৈধতাপ্যাসওয়ার্ড = মান => মান.ম্যাচ (নতুনরেগএক্সপ); । ``
আপনি সর্বদা স্ট্রিং হিসাবে নিয়মিত প্রকাশ করতে পারেন, যেমন "ReGeX" + testVar + "ReGeX"
। আপনার স্ট্রিংয়ের ভিতরে আপনাকে কয়েকটি অক্ষর থেকে বাঁচতে হবে (যেমন, ডাবল উদ্ধৃতি), তবে বেশিরভাগ ক্ষেত্রে এটি সমতুল্য।
আপনি ব্যবহার করতে পারেন RegExp
পতাকাগুলি পাস করার কনস্ট্রাক্টরও ( ডক্স দেখুন )।
আপনি দুটি উপায়ের একটিতে জেএসে নিয়মিত প্রকাশ তৈরি করতে পারেন:
/ab{2}/g
new RegExp("ab{2}", "g")
।নিয়মিত এক্সপ্রেশন আক্ষরিক ধ্রুবক হয়, এবং ভেরিয়েবলের সাথে ব্যবহার করা যায় না। এটি কনস্ট্রাক্টর ব্যবহার করে অর্জন করা যেতে পারে। RegEx কনস্ট্রাক্টর এর স্ট্রাকচার হয়
new RegExp(regularExpressionString, modifiersString)
আপনি নিয়মিত এক্সপ্রেশনস্ট্রিংয়ের অংশ হিসাবে ভেরিয়েবল এম্বেড করতে পারেন। উদাহরণ স্বরূপ,
var pattern="cd"
var repeats=3
new RegExp(`${pattern}{${repeats}}`, "g")
এটি প্যাটার্নের কোনও উপস্থিতির সাথে মিলবে cdcdcd
।
এখানে একটি চমত্কার অকেজো ফাংশন যা নির্দিষ্ট অক্ষর দ্বারা মোড়ানো মানগুলি ফেরত দেয়। :)
জেএসফিডাল: https://jsfiddle.net/squadjot/43agwo6x/
function getValsWrappedIn(str,c1,c2){
var rg = new RegExp("(?<=\\"+c1+")(.*?)(?=\\"+c2+")","g");
return str.match(rg);
}
var exampleStr = "Something (5) or some time (19) or maybe a (thingy)";
var results = getValsWrappedIn(exampleStr,"(",")")
// Will return array ["5","19","thingy"]
console.log(results)
গৃহীত উত্তর আমার পক্ষে কাজ করে না এবং MDN উদাহরণ অনুসরণ করে না
উপরের লিঙ্কে 'বিবরণ' বিভাগটি দেখুন
আমি নিম্নলিখিতটি নিয়ে যাব এটি আমার জন্য কাজ করছে:
let stringThatIsGoingToChange = 'findMe';
let flagsYouWant = 'gi' //simple string with flags
let dynamicRegExp = new RegExp(`${stringThatIsGoingToChange}`, flagsYouWant)
// that makes dynamicRegExp = /findMe/gi
প্রথমে স্ট্রিং ভেরিয়েবল প্রস্তুত করা এবং তারপরে এটি RegEx এ রূপান্তর করা দরকার।
উদাহরণ স্বরূপ:
আপনি যোগ করতে চান minLength
এবং MaxLength
Regex পরিবর্তনশীল সঙ্গে
function getRegEx() {
const minLength = "5"; // for exapmle: min is 5
const maxLength = "12"; // for exapmle: man is 12
var regEx = "^.{" + minLength + ","+ maxLength +"}$"; // first we make a String variable of our RegEx
regEx = new RegExp(regEx, "g"); // now we convert it to RegEx
return regEx; // In the end, we return the RegEx
}
এখন যদি আপনি MaxLength
বা এর মান পরিবর্তন করেনMinLength
, এটা সব RegExs মধ্যে পরিবর্তন করতে হবে।
আশা করি কাজে লাগবে। আমার ইংরেজি সম্পর্কেও দুঃখিত।