2009-12-31 10 views
154

मैं एक स्ट्रिंग jQuery या वेनिला का उपयोग कर जावास्क्रिप्टडैश से रिक्त स्थान बदलें और सभी अक्षर लोअर-केस

मान लीजिए कि हम "Sonic Free Games" करते हैं पुन: फ़ॉर्मेट करने की जरूरत हैं।

मैं इसे "sonic-free-games" में परिवर्तित करना चाहता हूं।

तो सफेद जगहों को डैश द्वारा प्रतिस्थापित किया जाना चाहिए और सभी अक्षरों को छोटे अक्षरों में परिवर्तित किया जाना चाहिए।

इस पर कोई मदद कृपया?

उत्तर

335

बस उदाहरण के लिए स्ट्रिंग replace और toLowerCase तरीकों का उपयोग: केवल

var str = "Sonic Free Games"; 
str = str.replace(/\s+/g, '-').toLowerCase(); 
console.log(str); // "sonic-free-games" 

सूचना RegExp पर g झंडा, यह प्रतिस्थापन विश्व स्तर पर स्ट्रिंग के भीतर है, अगर यह उपयोग नहीं किया जाता कर देगा पहली घटना बदली जाएगी, और यह भी कि, RegExp एक या अधिक सफेद-स्पेस वर्णों से मेल खाएगा।

+27

एक बदलाव मैं का उपयोग करता है के साथ आया था \ जो डब्ल्यू किसी भी nonalphanumeric चरित्र का प्रतिनिधित्व करता है। यह 'ए एंड पी किराने' जैसी चीज़ों के लिए उपयोगी है जो 'ए-पी-किराने' बन जाएगा। 'str.replace (/ \ W +/g, '-')। toLowerCase();' –

+1

रीजक्सप भाग को उद्धृत न करें, यानी 'प्रतिस्थापित करें (/ \ s +/g, ..' और ** ** ** प्रतिस्थापित नहीं करें ('/ \ s +/f', ..' (apostrophes के बिना) –

19

ऊपर उत्तर को थोड़ा उलझन में माना जा सकता है। स्ट्रिंग विधियां मूल ऑब्जेक्ट को संशोधित नहीं कर रही हैं। वे वापसी नई वस्तु। यह होना चाहिए:

var str = "Sonic Free Games"; 
str = str.replace(/\s+/g, '-').toLowerCase(); //new object assigned to var str 
+8

मुझे लगता है कि यह ध्यान रखना महत्वपूर्ण है कि स्वीकार किए गए उत्तर को इस अवधारणा को शामिल करने के लिए संपादित किया गया था –

+0

@GeorgeJempty उस जानकारी के लिए धन्यवाद +1 –

9

तुम भी split और join उपयोग कर सकते हैं:

"Sonic Free Games".split(" ").join("-").toLowerCase(); //sonic-free-games 
संबंधित मुद्दे