2015-01-03 4 views
7

में निकटतम स्थान पर टेक्स्ट/स्ट्रिंग को विभाजित करें मैं वास्तव में 47 वें चरित्र के निकटतम स्ट्रिंग पर पाठ को विभाजित करने के लिए संघर्ष कर रहा हूं। यह कैसे किया जाता है? http://jsfiddle.net/f5n326gy/5/जावास्क्रिप्ट

धन्यवाद -

var fulltext = document.getElementById("text").value; 

var a = fulltext.slice(0, 47); 
console.log(a); 

var b = fulltext.slice(47, 47*2); 
console.log(b); 

var c = fulltext.slice(94, 47*3); 
console.log(c); 

यहाँ एक जे एस फिडल है।

+2

पिछला अगला, या महत्वपूर्ण नहीं है? – dfsq

+0

जितना संभव हो सके प्रश्नों को सरल नहीं बनाते हैं, और 'var fulltext =' मेरे पाठ को सीधे यहां पोस्ट करते हैं और हमें सीधे आपकी समस्या पर ध्यान केंद्रित करते हैं ' – amd

+0

हाय, जब तक पाठ की तीन पंक्तियां ठीक से पढ़ती हैं, मुझे कोई फर्क नहीं पड़ता कौन कौन से। @dfsq –

उत्तर

6

तुम सिर्फ पहले भाग में रुचि रखते हैं, तो

var a = fulltext.match(/^.{47}\w*/) 

देखें डेमो (बेला) here का उपयोग करें।


आप एक से अधिक सबस्ट्रिंग को पूरी स्ट्रिंग विभाजित करने के लिए चाहते हैं, तो

var a = fulltext.match(/.{47}\w*|.*/g); 

डेमो (बेला) here देखें का उपयोग करें।

... और यदि आप चाहें सबस्ट्रिंग शब्द विभाजक (जैसे अंतरिक्ष या अल्पविराम के रूप में) के साथ शुरू नहीं करते हैं और पिछले मैच के साथ शामिल करने के लिए पसंद करते हैं, तो का उपयोग

var a = fulltext.match(/.{47}\w*\W*|.*/g); 

डेमो सी (बेवकूफ) here

+0

यह पहली पंक्ति के लिए अच्छी तरह से काम करता प्रतीत होता है। क्या आप मुझे तीन लाइनों में विभाजित करने के लिए jsfiddle पर दिखाने में सक्षम होंगे? आपके समय के लिए धन्यवाद। –

+0

क्षमा करें @ Ωmega - आपको टैग करने के लिए भूल गए –

+1

@TristanKirkpatrick - मैंने अपना जवाब अपडेट कर दिया है। यदि वह नहीं है जिसे आप ढूंढ रहे थे, तो कृपया अपनी आवश्यकताओं को स्पष्ट करें। –

4

आप विधि का उपयोग कर fromIndex दूसरे पैरामीटर के साथ अगली शब्द सीमा पा सकते हैं। उसके बाद आप बाएं भाग या दाएं को पाने के लिए slice का उपयोग कर सकते हैं।

var fulltext = "The slice() method selects the elements starting at the given start argument, and ends at, but does not include, the given end argument.";  
 
var before = fulltext.slice(0, fulltext.indexOf(' ', 47)); 
 
var after = fulltext.slice(fulltext.indexOf(' ', 47)); 
 
alert(before); 
 
alert(after);

+0

ऐसा लगता है कि कुछ ग्रंथों के साथ यह पिछले शब्द का चयन करेगा और इसे दो बार प्रदर्शित करेगा। क्या इसके चारों ओर एक रास्ता है? –

+0

क्या आप मुझे ऐसे पाठ का उदाहरण दे सकते हैं? यह कल्पना नहीं कर सकता कि यह कब हो सकता है। – dfsq

+0

मैं इंटरनेट से पाठ में पेस्ट कर रहा हूं और सटीक पाठ को याद नहीं कर सकता, क्षमा करें। –

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