रेगेक्स पैटर्न कैसे बनाएं जो कि परिवर्तनशील है, कुछ इस तरह है:
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।