2012-07-30 10 views
5

को प्रतिस्थापित करने के लिए जेएस। रीप्लेस का उपयोग करके कुछ रेगेक्स के आसपास अपना सिर प्राप्त करने का प्रयास कर रहा है।जेएस रेगेक्स नंबर

उदाहरण के लिए, स्ट्रिंग हो सकता है:

var string = 'image[testing][hello][0][welcome]'; 

मैं '0' एक और मूल्य के साथ बदलना चाहते हैं। मैं मूल रूप से इस उपयोग कर रहा था:

string.replace(/\[\d\]/g, '[newvalue]'); 

लेकिन जब हम दोहरे अंक या अधिक (12, 200, 3204, आपको मिल मैं क्या मतलब है), यह ठीक से काम करना बंद कर देता जगह शुरू करते हैं। यह सुनिश्चित नहीं है कि जिस तरह से मैं इसे चाहता हूं उसे कैसे काम करना है।

अग्रिम धन्यवाद। अत्यधिक सराहनीय। निम्नलिखित

उत्तर

10

आप एक से अधिक अंक निर्दिष्ट करना होगा:

string.replace(/\[\d+\]/g, '[newvalue]'); 

JS Fiddle demo

(नोट डेमो jQuery का उपयोग करती नोड्स के माध्यम से चीज़ों को दोहरा, लेकिन यह महज एक सुविधा है, और नियमित अभिव्यक्ति पर कोई प्रभाव नहीं, यह सिर्फ इसके कार्य को प्रदर्शित करता है।)

आपके मूल काम नहीं करने का कारण, मुझे लगता है, क्योंकि \d केवल एक अंक से मेल खाता है, जबकि + ऑपरेटर/वर्ण विनिर्देश पहले (इस मामले में अंक) चरित्र एक या अधिक बार होता है।

संदर्भ:

3

उपयोग:

string.replace(/\[\d+\]/g, '[newvalue]');

कि कोष्ठक में सभी अंक से मेल खाना चाहिए।