2012-09-12 9 views
5

असल में मैं बहु ब्राउज़र अनुपालन के लिए एक पुराना वेब ऐप अपडेट कर रहा हूं। हर जगह मूल प्रोग्रामर का इस्तेमाल किया है -एक स्ट्रिंग के एकाधिक हिस्सों को बदलने के लिए नियमित अभिव्यक्ति (विजुअल स्टूडियो 2012 में)

document.all.element 

मैं समझता हूँ के रूप में केवल, IE 4. में पेश मानकों संगत ".getElementById" समारोह शुरू की गई थी आईई है "सब के सब" IE 5 में मैं चाहता हूँ

document.getElementById("element") 

मैं इस रेगुलर एक्सप्रेशन कैसे फार्म होगा, विशेष रूप से दृश्य स्टूडियो के "खोजें और बदलें" संवाद का उपयोग कर - करने के लिए ऊपर बयान के उदाहरण को बदलने के लिए?

उत्तर

2

मुझे यकीन नहीं है कि यह विजुअल स्टूडियो 2012 आरसी का उपयोग कर मेरे साथ कोई मुद्दा है लेकिन ब्रेसिज़ का उपयोग किसी भी चीज़ से मेल खाने में विफल रहा है।

मुझे लगता है अभिव्यक्ति का उपयोग कर समाप्त हो गया -

document\.all\.([a-zA-Z0-9]+) 

और प्रतिस्थापन

document.getElementById("$1") 

"$ 1" कोष्ठकों के भीतर अभिव्यक्ति को दर्शाता है।

आपकी मदद लोगों के लिए धन्यवाद।

+0

यह मामला हो सकता है, मुझे वीएस 2010 में उपयोग किया जाता है और आपने उल्लेख नहीं किया है कि आप 2012 पर हैं। –

+0

मैंने उल्लेख किया होगा कि मैं 2012 का उपयोग कर रहा था लेकिन इस स्थिति में मुझे उम्मीद नहीं थी कि इससे कोई फर्क पड़ता। अब मुझे यकीन नहीं है कि स्थिति को प्रतिबिंबित करने के लिए मेरे प्रश्न को संपादित करने के लिए क्या करना है (और मेरे उत्तर को सही के रूप में चिह्नित करें) या जेनेरिक छोड़ दें क्योंकि आपका उत्तर (और दासब्लिंकनलाइट) दृश्य स्टूडियो के पिछले संस्करणों के लिए सही है। –

+0

मैं यह अलग नहीं होने की अपेक्षा करता हूं, अपने उत्तर को स्वीकार करने के लिए स्वतंत्र महसूस करें;) –

0

मुझे नहीं लगता कि आपको नियमित अभिव्यक्ति की आवश्यकता है।

सीधे शब्दों में document.all.elementdocument.getElementById द्वारा पाठ में बदलने के संवाद

+0

इस स्थिति में काम नहीं करेगा, मुझे "तत्व" भाग को ब्रैकेट और उद्धरण चिह्नों से घिरा होना चाहिए। –

+0

क्या आप मुझे एक उदाहरण दिखा सकते हैं जहां यह काम नहीं करेगा? –

+0

ठीक है मुझे यह मिल गया। आप document.all.elements को किसी इंडेक्स द्वारा एक्सेस किया जाता है, यह फ़ंक्शन –

4

दृश्य स्टूडियो 2010 में जगह ले और पहले नियमित अभिव्यक्ति वाक्यविन्यास पीछा कर रहा है:

एक अभिव्यक्ति उपयोग { } को टैग करने के लिए, प्रतिस्थापन उपयोग \1 के लिए पहली टैग संदर्भित करने के लिए

document\.all\.{[a-zA-Z0-9]+} 
:

अपने मामले में आप खोजने की जरूरत है

और के साथ बदलें:

document.getElementById('\1') 

विजुअल स्टूडियो 2012 में नियमित अभिव्यक्ति वाक्य रचना करने के लिए बदल गया है:

document\.all\.([a-zA-Z0-9]+) 
document.getElementById('$1') 
+1

'{}' के बजाय विजुअल स्टूडियो 2012 का टैग '()' नहीं है? यह विजुअल स्टूडियो के पुराने संस्करण है। –

1

के लिए खोज

[.]all[.]{:i} 

और के साथ बदलें

.getElementById("\1") 

डॉट . के आस-पास के वर्ग ब्रैकेट यह सुनिश्चित करने के लिए हैं कि इसे मेटा-कैरेक्टर के रूप में व्याख्या नहीं किया गया है (आप इसके बजाय \. का उपयोग कर सकते हैं)। :iपहचानकर्ता के लिए विजुअल स्टूडियो का प्रतीक है।

\1 प्रतिस्थापन स्ट्रिंग में का संदर्भ पहले में चिह्नित अभिव्यक्ति (अर्थात {:i} अभिव्यक्ति), इसलिए पहचानकर्ता दोहरे उद्धरण चिह्नों के अंदर "में चिपकाया" कर दिया जाएगा।

संबंधित मुद्दे