मित्रों मुझे एक स्क्रिप्ट में स्ट्रिंग वैरियेबल को ग्लोबली रिप्लेस करना है। जावास्क्रिप्ट में
स्ट्रिंग रिप्लेस का सिण्टैक्स है।
str.replace("अ",a);
यह सिर्फ पहले occurence को रिप्लेस करता है। ग्लोबल रिप्लेसमेंट के लिये निम्न रेगुलर ऍक्सप्रैशन प्रयोग करना पड़ता है।
str.replace(/अ/g,a)
इसमें जो स्ट्रिंग रिप्लेस करनी है (यहाँ पर
अ) वह बिना कोट्स के होगी।
अब मेरे पास दो अरे हैं, एक में हिन्दी वर्ण तथा दूसरे में लातिन वर्ण। अरे मैं काफी वर्ण हैं, उदाहरण के लिये मैं तीन रख रहा हूँ।
arr1=new array ("अ", "ब", "स","द")
arr2=new array ("a", "b","c","d")
str मेरी इनपुट स्ट्रिंग है। माना str="अबके बरस वो आये हैं"
मैं रिप्लेसमेंट के लिये एक लूप चलाता हूँ।
for (i=0;i<=2;i++)
str=str.replace(arr1[i],arr2[i]);तो पहला "ब" तो रिप्लेस हो जायेगा लेकिन दूसरा नहीं। अब यदि में ग्लोबली रिप्लेस के लिये /g प्रयोग करुँ
for (i=0;i<=2;i++)
str=str.replace(/arr1[i]/g,arr2[i]);
तो ये काम नहीं करता क्योंकि ग्लोबल रिप्लेसमेंट में रेगुलर ऍक्सप्रैशन में // के बीच कोट्स नहीं होने चाहिये।
मैंने अरे में वैरियबल्स को बिना कोट्स रखकर देखा पर फिर अरे वैरियेबल्स ऍक्सैस ही नहीं होते क्योंकि स्ट्रिंग वैरियेबल्स को कोट्स में रखना ही पड़ेगा, नहीं तो स्ट्रिंग के तौर पर ट्रीट नहीं होगें।
अब अरे में रिप्लेस करने हेतु १३० वर्ण हैं, दो चार होते तो मैं बिना अरे प्रयोग किये प्रत्येक वर्ण के लिये स्टेटमेंट लिख लेता।
कोई उपाय?
--
Shrish Benjwal Sharma (श्रीश बेंजवाल शर्मा)
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
If u can't beat them, join them.ePandit:
http://epandit.shrish.in/