जावास्क्रिप्ट में स्ट्रिंग अरे की ग्लोबल रिप्लेस में समस्या

3 views
Skip to first unread message

ePandit | ई-पण्डित

unread,
Nov 10, 2010, 7:56:24 PM11/10/10
to पेंचकस
मित्रों मुझे एक स्क्रिप्ट में स्ट्रिंग वैरियेबल को ग्लोबली रिप्लेस करना है। जावास्क्रिप्ट में स्ट्रिंग रिप्लेस का सिण्टैक्स है।

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/

Anunad Singh

unread,
Nov 10, 2010, 8:58:19 PM11/10/10
to penc...@googlegroups.com
मैं भी इस समस्या से दो-चार हो चुका हूँ। इस कारण मैं अरे के साथ ग्लोबल रिप्लेसमेन्ट  का आनन्द नहीं उठा पाया था और एक अन्य लूप में  एक-एक रिप्लेसमेन्ट से ही काम चलाना पड़ा था।

किन्तु मुझे लगता है कि निम्नलिखित  युक्ति काम करेगी-

rep_string = "/" + arr1[i] + "/g," + "arr2[i]" ;

str=str.replace(rep_string);


-- अनुनाद

Anunad Singh

unread,
Nov 11, 2010, 4:38:55 AM11/11/10
to penc...@googlegroups.com
पंडित जी,
मैने जांच कर देखा। मेरा सुझाया हुआ हल काम नहीं कर रहा है।
Reply all
Reply to author
Forward
0 new messages