2011-05-25 14 views
5

मैं रेगेक्स का उपयोग किए बिना जावास्क्रिप्ट या PHP में बीबीसीओडी पार्सर की तलाश में हूं। क्या कोई मुझे एक अच्छा सुझाव दे सकता है?रेगेक्स के बिना बीबीसीओडी पार्सर?

+2

तुम क्यों regex से परहेज कर रहे हैं? (गति?) – tofutim

+3

क्योंकि मैं सिर्फ टैग को प्रतिस्थापित नहीं करना चाहता हूं, मैं टैग के बीच सामग्री के साथ थोड़ा सा करना चाहता हूं। क्या आपके पास मेरे लिए कोई सुझाव है? – Teiv

+0

"मैं टैग के बीच सामग्री के साथ थोड़ा सा करना चाहता हूं" preg_replace_callback() 'इसके लिए बहुत अच्छा है। यदि आप हमें एक ठोस उदाहरण दे सकते हैं कि आप वास्तव में क्या करने की कोशिश कर रहे हैं, तो हम आपको अधिक विशिष्ट सलाह दे सकते हैं। –

उत्तर

6

रेगेक्स का उपयोग करने की अनुशंसा की जाती है।

अन्य समाधान:

function bb_parse($str) 
{ 
    return str_replace(array('[b]', '[/b]'), array('<strong>', '</strong>'), $str); 
} 

यह गलत समापन टैग की वजह से पार्स करने बंद किए बिना एक एचटीएमएल टैग के साथ लिपटे जा रही सामग्री को समाप्त कर सकते हैं तोड़ सकते हैं।

+0

एहम, बीबी एचटीएमएल के रूप में एक पुनरावर्ती प्रारूप है। इस प्रकार, मैं टट्टू का आह्वान करता हूं: http://stackoverflow.com/questions/1732348/regex-match-open-tags-except-xhtml-self-contained-tags –

2

PECL extension for bbcode है। इसका उपयोग करने के लिए आपको how to install PECL extensions पर एक नज़र डालना होगा।

+1

मेरा मानना ​​है कि पीईसीएल एक्सटेंशन मेरे कई परीक्षणों पर segfaulted, तो सावधानी के साथ आगे बढ़ें। –

-1

आप एक PECL एक्सटेंशन इंस्टॉल कर सकता है, तो आप का उपयोग करने के लिए सक्षम हो जाएगा BBCode functions

1

Zend पार्सर जा क्या आप http://framework.zend.com/manual/en/zend.markup.parsers.html

दुर्भाग्य के लिए देख रहे हो सकता है, मैं इसे कम से कम व्यावहारिक रूप से कार्यात्मक पाया बीबीसीओडी पार्सर्स का मूल्यांकन किया गया: जब विकृत मार्कअप ([b] asdf [/ wops I forgot to close my tag) का सामना करना पड़ता है तो यह पहले विकृत टैग के बाद सभी सामग्री को फेंक देता है। अन्य बीबीकोड पार्सर्स खराब मार्कअप को अनदेखा करने का एक बेहतर काम करते हैं।

0

तो मैं आप कोई regex कहा पता है, लेकिन मैं हाल ही में JavaScript में एक BBCode पार्सर लिखा था, और मेरा मानना ​​है कि यह अपनी चिंताओं को संबोधित करता है, क्योंकि यह नहीं एक सरल खोज और की जगह है और यह आप के भीतर सामग्री तक पहुँच देता है टैग। आप इसे का एक डेमो देख सकते हैं:

http://patorjk.com/bbcode-previewer/

और स्रोत हो और उस पर यहाँ लिखें:

http://patorjk.com/blog/2011/05/07/extendible-bbcode-parser-in-javascript/

0

मैं हाल ही में जावास्क्रिप्ट में एक BBCode पार्सर लिखें।

यह क्या कर सकते हैं: HTML स्ट्रिंग के लिए

  1. Convert BBcode स्ट्रिंग;
  2. एचटीएमएल तत्व को बीबीसीओडी स्ट्रिंग में कनवर्ट करें;
  3. स्वत: सही बीबीसीओडी स्ट्रिंग;

चेक डेमो: UBBParser

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