अपरकेस कैरेक्टर्स पर जावास्क्रिप्ट स्प्लिट स्ट्रिंग


106

आप अपरकेस कैरेक्टर द्वारा जावास्क्रिप्ट में एक स्ट्रिंग को एक सरणी में कैसे विभाजित करते हैं?

इसलिए मैं विभाजित करना चाहता हूं:

'ThisIsTheStringToSplit'

में

('This', 'Is', 'The', 'String', 'To', 'Split')

इस समस्या के समाधान की तलाश में कुछ लोगों के लिए यह उपयोगी हो सकता है: stackoverflow.com/a/25732260/1454888
Augusto Barreto

जवाबों:


223

मैं इसे इस .match()तरह से करूंगा :

'ThisIsTheStringToSplit'.match(/[A-Z][a-z]+/g);

यह इस तरह एक सरणी बना देगा:

['This', 'Is', 'The', 'String', 'To', 'Split']

संपादित करें: चूंकि string.split()विधि regex का भी समर्थन करती है इसलिए इसे इस तरह हासिल किया जा सकता है

'ThisIsTheStringToSplit'.split(/(?=[A-Z])/); // positive lookahead to keep the capital letters

वह भी टिप्पणी से समस्या को हल करेगा:

"thisIsATrickyOne".split(/(?=[A-Z])/);

47
यह एकल अपरकेस वर्ण नहीं मिलेगा। मैं निम्नलिखित सुझाव देता हूं: "thisIsATrickyOne".match(/([A-Z]?[^A-Z]*)/g).slice(0,-1)
andrewmu

18
.match(/[A-Z][a-z]+|[0-9]+/g).join(" ")

यह संख्याओं को भी संभालना चाहिए .. अंतिम परिणाम में शामिल होने के लिए सभी सरणी आइटम को एक वाक्य में बदलने के लिए यदि आप जो चाहते हैं, उसके लिए

'ThisIsTheStringToSplit'.match(/[A-Z][a-z]+|[0-9]+/g).join(" ")

उत्पादन

"This Is The String To Split"

यह पूर्ण है। लेकिन इसका उपयोग करने वाले किसी भी व्यक्ति को निम्नलिखित मामले में सावधान रहना चाहिए: छोटे केस स्ट्रिंग ( ) के बाद 'ThisIs8TheSt3ringToSplit'.match(/[A-Z][a-z]+|[0-9]+/g).join(" ")उत्पादन This Is 8 The St 3 To Split, उत्पादन । ring3
डियाब्लो

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