2011-12-02 15 views
28

मैं एक स्ट्रिंग है कि मैं 6. की एक समान लंबाई मैं उपयोग करने की कोशिश के साथ छोटे तार में विभाजित की जरूरत है की सरणी में विभाजित करें स्ट्रिंग :समान लंबाई तार

["", "abcdef", "", "ghijkl", "", "mnopqr", "", "stuvwx", ""] 

उत्तर

53

एक वैश्विक ध्वज के साथ संयोजन के रूप में उपयोग match, विभाजन के बजाय। मिलान किए गए स्ट्रिंग के अंतिम भाग को भी शामिल करने के लिए {1,6} आवश्यक है। पैटर्न डिफ़ॉल्ट रूप से लालची हैं, जिसका अर्थ है कि जितना संभव हो उतना मिलान किया जाता है। तो, .{1,6} केवल एक स्ट्रिंग के अंत में कम से कम 6 अक्षर से मेल खाएगी।

'abcdefghijklmnopqrstuvwxyz'.match(/.{1,6}/g); 

परिणाम:

["abcdef", "ghijkl", "mnopqr", "stuvwx", "yz"]; 

ध्यान दें कि लौटे वस्तु एक सच्चे सरणी है। सत्यापित करने के लिए:

console.log('.'.match(/./g) instanceof Array); //true 

+0

वर्क्स एक आकर्षण की तरह! धन्यवाद! – trumank

+1

ध्यान दें कि '.' * * किसी भी चरित्र से मेल नहीं खाता है। यह (http://es5.github.io/#x15.10.2.8) [ 'Lineterminator's पर ध्यान नहीं देता]। यह सुनिश्चित करने के लिए '[\ s \ S] 'का उपयोग करें कि यह बहु-पंक्ति तारों पर काम करता है। – user123444555621

संबंधित मुद्दे