लंबे वाक्यों jQuery का उपयोग कर पर प्रकाश डाला

वोट
6

मैं (50 शब्दों या अधिक से अधिक कहते हैं,) एक पृष्ठ पर पैरा वस्तुओं की एक सरणी, यानी में निहित लंबे वाक्यों को उजागर करना चाहते हैं $(#content p)। मुझे यकीन है कि नहीं यह कैसे से निपटने के लिए कर रहा हूँ।

मैं मूल रूप से सभी वाक्य को उजागर करने का प्रयास किया, लेकिन मुसीबत में भाग गया, जब वे HTML टैग निहित (उदाहरण के नेट पर कोड पर प्रकाश डाला ही अलग-अलग शब्दों के लिए होने लगते हैं, इसलिए वे खाते में बच्चे नोड्स नहीं लेते)। मुझे पता है कि बंटवारे वाक्य मुश्किल है हूँ, मैं उपयोग करना चाहते हैं।? या तो एक अंतरिक्ष तो बड़े अक्षर या (अनुच्छेद के अंत यानी) सब पर कुछ भी नहीं किया गया।

किसी भी मदद / सलाह के लिए अग्रिम धन्यवाद।

26/02/2010 को 13:26
का स्रोत उपयोगकर्ता
अन्य भाषाओं में...                            


4 जवाब

वोट
2

आप जो बोलते हैं उसे यह सही पाने के लिए मुश्किल हो वाला है के रूप में, सच है कि आप दिया; फिर से नहीं उन सब को पकड़ने के लिए जा रहा है, मैं कुछ सरल की तरह साथ रहना चाहते हैं:

var regex = \[^.!?]{50,}[.!?]\;

बहुत चालाक हो रही है और आपको अधिक समय बढ़त मामलों के लिए कोडिंग से मुझे लगता है कि आप यथोचित चाहेगा खर्च खत्म हो जाएगा।

26/02/2010 को 13:48
का स्रोत उपयोगकर्ता

वोट
0

मैं सुनिश्चित नहीं हूं तो सबसे अच्छा होगा क्लाइंट की तरफ यह करने के लिए है। मैं सर्वर से पैराग्राफ वापस भेजने काम करने के लिए विचार किया जाएगा। लेकिन काम एक ही किसी भी तरह से किया जाना चाहिए।

सबसे पहले एक पैरा के सभी सामग्री प्राप्त करने के लिए यह सब यह डोम में कुछ नोड्स में हो सकता है यह सुनिश्चित कर लें ले। ( इस पढ़ें ) तो फिर तुम एक पार्सर कि आपके विभाजन पात्रों के लिए लग रहा है, जबकि अभी भी उन्हें अनदेखा करते हुए वे HTML निकाय में हैं बनाने के लिए की आवश्यकता होगी।

एक उदाहरण के रूप। एक href विशेषता में अनदेखा किया जाना चाहिए और नहीं अलग हो गए। पार्स करते समय आप को तोड़ने के रिक्त स्थान पर काम कर रहे एक शब्द के रूप में अच्छी तरह से गिनती रख सकते हैं। प्रत्येक वाक्य एक उद्देश्य यह है कि पूरे वाक्य और शब्द गणना में शामिल करें। तो तुम एक सरणी है कि पैरा का प्रतिनिधित्व करता है में उन वस्तुओं धक्का कर सकते हैं। ऐसा करने के बाद आप तो सरणी के माध्यम से पुनरावृति और सीएसएस के साथ प्रकाश डाला है, तो शब्द गणना अपनी सीमा तक पहुँच जाता के लिए अंतराल में किसी भी वाक्य लपेट कर सकते हैं।

बड़ी समस्या टैग जैसे कि निम्न दो वाक्य के कुछ हिस्सों हो सकता है।

I'm typing <b> in bold. NOW!</b>

मैं क्या कर रहा है कि के साथ सौदा नहीं है, लेकिन आप पार्सर अधिक जटिल बाद में उस का समर्थन करने के कर सकता है के बारे में बात की है।

तो मेरी पर्यटन के एक त्वरित अवलोकन एक राज्य मशीन है कि सही स्थान पर शब्द और बंटवारे की गिनती के साथ सौदों के साथ सभी पात्रों के माध्यम से पार्स। विभाजन पर डेटा आप एक सरणी के लिए एकत्र जोड़ें। जब सरणी नव लिपटे वाक्य outputting के माध्यम से पुनरावृति किया।

26/02/2010 को 13:49
का स्रोत उपयोगकर्ता

वोट
0

यह शायद एक नहीं बल्कि धीमी गति से समाधान है, और बदसूरत भी है, लेकिन यह बहुत कोड के लिए सरल होना चाहिए:

एक स्ट्रिंग में सभी पाठ पढ़ें, और फिर यह द्वारा पार्स करें, वर्ण गिनती और हर खोजने -।!? चरित्र। पार्स पाश में, आप भी <और>, जहां देखने के लिए <का मतलब है "सभी पर ध्यान न दें।!? एक और खोजने जब तक>"। तो फिर हर बार जब आप एक पाते हैं -।!? चरित्र, आप पिछले एक के बाद से लंबाई की जांच, और अगर यह लंबे समय के लिए पर्याप्त आप एक सरणी या कुछ में starting- और अंत बिंदु के लिए सूचकांक को बचाने।

जब पूरी बात से किया जाता है, इससे पहले कि, एक और पाश, कि एक नया स्ट्रिंग में पहली स्ट्रिंग से सबस्ट्रिंग चलता है, एक विशेषता-टैग के साथ हर "लंबे वाक्य" prepending, और यह के अंत में एक अंत उजागर टैग जोड़कर बनाना आगे बढ़ते रहना।

समाप्त होने पर, नए स्ट्रिंग वापस रख जहां आप इसे से मिल गया ...

27/02/2010 को 12:33
का स्रोत उपयोगकर्ता

वोट
0

ऐसा करने के लिए आप प्रत्येक अनुच्छेद (के एचटीएमएल पाने की जरूरत है node.html()) और फिर रिक्त स्थान की एक ही नंबर के साथ HTML टैग के सभी बदलें। यह काफी straightfoward होना चाहिए और आप सिर्फ कोणीय कोष्ठक और पहले बंद कोष्ठक खोलने के लिए देख सकते हैं। आप एल्गोरिथ्म के बाकी भ्रमित से किसी भी पूर्ण विराम और टैग के अंदर शब्द को रोकने के लिए सबसे पहले यह करने के लिए की जरूरत है, लेकिन यह भी एक टैग अपने आप में एक शब्द के रूप में गिना जा रहा रोकने के लिए।

एक पूर्ण कुछ भी नहीं या खाली स्थान के लिए किसी भी मात्रा अपने वाक्य को पाने के लिए के बाद बंद पर आधारित पाठ विभाजित करें। आप इस विभाजन को करने के लिए मैन्युअल रूप से एक से मेल खाते रेगुलर एक्सप्रेशन के उपयोग ताकि आप मूल स्ट्रिंग में सजा के आरंभ और अंत पदों का ट्रैक रख सकते की जरूरत है।

अगला खाली स्थान के पर प्रत्येक वाक्य विभाजित है और सरणी जो सिर्फ खाली स्थान के से मिलकर से किसी भी 'शब्द' को हटा दें। यह आपको सजा की लंबाई देता है। यह अपने सीमा से अधिक है तो आपके मूल HTML स्ट्रिंग में सजा के आरंभ और अंत पदों पर उपयुक्त HTML डालें। आप आप कितना अतिरिक्त HTML जोड़ दिया है का ट्रैक रखने के ताकि आप बाद में लंबे वाक्यों का सही प्रारंभ और अंत पदों का पता लगाएं पा सकते हैं की आवश्यकता होगी।

01/03/2010 को 14:35
का स्रोत उपयोगकर्ता

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more