विशेष वर्णों को स्ट्रिंग में बदलें _ (अंडरस्कोर) के साथ


92

मैं विशेष पात्रों को एक स्ट्रिंग से निकालना और उन्हें _चरित्र के साथ बदलना चाहता हूं ।

उदाहरण के लिए:

string = "img_realtime_tr~ading3$"

परिणामी स्ट्रिंग को "img_realtime_tr_ading3_" जैसा दिखना चाहिए;

मुझे उन पात्रों को बदलने की आवश्यकता है: & / \ # , + ( ) $ ~ % .. ' " : * ? < > { }


48
यह बंद क्यों है, यह एक अच्छा सवाल है। एसई-फ्रेंडली यूआरएल बनाने के दौरान उपयोगी विशेष पात्रों को कैसे बदलें। शुक्र है कि अभी भी किसी ने इसका जवाब दिया।
साइकिल

1
एक असाधारण रूप से संकीर्ण स्थिति जो आमतौर पर इंटरनेट के दुनिया भर के दर्शकों पर लागू नहीं होती है? ठीक है, हम यह कहते हैं कि कम से कम १० persons व्यक्ति जहां अन्यथा सोच रहे हैं।
एंटोनी पेल्लेटियर

1
बन्द है ? हालांकि गंदा डेटा स्क्रैप करते समय बहुत उपयोगी है।
स्टांडा ने मोनिका

यह बंद नहीं होना चाहिए
मुस्तकेम के

जवाबों:


209
string = string.replace(/[&\/\\#,+()$~%.'":*?<>{}]/g,'_');

वैकल्पिक रूप से, संख्याओं और अक्षरों को छोड़कर सभी वर्णों को बदलने के लिए, प्रयास करें:

string = string.replace(/[^a-zA-Z0-9]/g,'_');

ठंडा! !हालांकि पहली पंक्ति में गायब है।
ProblemsOfSumit

4
दूसरी पंक्ति कई अवसरों में बहुत उपयोगी है।
मस्तज़ी

\-और =भी याद आ रही है :)
Simo D'lo Mafuxwana

2
यदि आपके पास एक विशेष चरित्र है, जैसे कि hello! wordआप एक अंतरिक्ष से पहले दो अंडरस्कोर के साथ समाप्त हो जाएंगे hello__word, तो आप ऐसा कर सकते हैं:string = string.replace(/[^a-zA-Z0-9]/g,'_').replace(/__/g,'_');
DannyFeliz

3
@ डैनीफेलिज़ या भले string = string.replace(/[^a-zA-Z0-9]/g,'_').replace(/_{2,}/g,'_');ही आप नहीं जानते कि कितने लगातार अंडरस्कोर हैं
फाल्केडोव

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.