Estoy buscando un analizador de BBCode en Javascript o PHP sin la necesidad de usar Regex. ¿Alguien puede sugerirme uno bueno?Analizador de BBCode sin Regex?
Respuesta
Se recomienda utilizar expresiones regulares.
otra solución:
function bb_parse($str)
{
return str_replace(array('[b]', '[/b]'), array('<strong>', '</strong>'), $str);
}
Este análisis puede romper debido a clasificaciones de errores de cierre puede terminar contenido que se está envuelto con una etiqueta HTML sin cerrar.
Ehm, BB es un formato recursivo igual que HTML. Por lo tanto, invoco el poni: http://stackoverflow.com/questions/1732348/regex-match-open-tags-except-xhtml-self-contained-tags –
Hay un PECL extension for bbcode. Tendrá que echar un vistazo al how to install PECL extensions para poder utilizarlo.
Creo que la extensión PECL segfaul en varias de mis pruebas, así que proceda con precaución. –
Si puede instalar una extensión PECL, usted será capaz de utilizar el BBCode functions
Zend analizador podría ser lo que estás buscando http://framework.zend.com/manual/en/zend.markup.parsers.html
Por desgracia, me pareció el menos prácticamente funcional de la Analizadores de código BBCode que evalué: cuando se encuentra marcado incorrecto ([b] asdf [/ wops I forgot to close my tag
) tiende a tirar todo el contenido después de la primera etiqueta mal formada. Otros analizadores de bbcode hacen un mejor trabajo simplemente ignorando el marcado incorrecto.
Así que sé que no dijo expresiones regex, pero recientemente escribí un analizador de BBCode en JavaScript, y creo que responde a sus inquietudes ya que es no un simple encontrar y reemplazar y le da acceso al contenido dentro del etiquetas. Se puede ver una demostración de que aquí:
http://patorjk.com/bbcode-previewer/
Y conseguir la fuente y escribir en él aquí:
http://patorjk.com/blog/2011/05/07/extendible-bbcode-parser-in-javascript/
Hace poco escribir un analizador de BBCode en javascript.
Lo que puede hacer:
- Convierte la cadena a cadena HTML BBCode;
- Convierte el elemento HTML a cadena BBCode;
- Corregir automáticamente la cadena BBCode;
Comprobar la demo: UBBParser
- 1. Cualquier buen analizador de BBCode de javascript?
- 2. Java BBCode library
- 3. Bbcode expresiones regulares
- 4. Cómo convertir HTML a BBCode
- 5. String.replaceAll sin RegEx
- 6. Sin dígitos Java Regex Pattern
- 7. Validación de correo electrónico TSQL (sin regex)
- 8. Conversión de publicaciones BBCode de phpBB en Markdown
- 9. Usando PEG Parser para el análisis de BBCode: pegjs o ... ¿qué?
- 10. Analizador/Analizador para Erlang?
- 11. Analizador de expresiones regulares ligero
- 12. subcadena Ruby sub sin regex referencias atrás
- 13. Regex para no alfabetos y sin numerales
- 14. .NET Regex, solo numérico, sin espacios
- 15. Regex para encontrar una cadena sin terminar
- 16. analizador
- 17. analizador SAX vs XMLPull analizador
- 18. ¿Alguien ha implementado un analizador Regex y/o Xml alrededor de StringBuilders o Streams?
- 19. URL de coincidencia regex sin extensión de archivo
- 20. Nombreme un analizador binario. Un analizador de datos binarios
- 21. valores numéricos RegEx matcing con o sin separadores de miles
- 22. Regex dividió números y grupos de letras sin espacios
- 23. ¿Por qué debería usar BBCode pero no HTML en formularios de comentarios?
- 24. Diferencia entre el analizador XML SAX, el analizador de arrastre y el analizador DOM en Android
- 25. Analizador HTML
- 26. Diferencia entre analizador circunscripción y analizador de dependencias
- 27. Analizador de consultas MySQL
- 28. Flex ++ Analizador de BisonC++
- 29. Analizador de idioma DOT
- 30. Analizador de código HTML
por qué estás evitando expresiones regulares? (¿velocidad?) – tofutim
Porque no solo quiero reemplazar las etiquetas, también quiero hacer un poco con el contenido entre las etiquetas. ¿Tienes alguna sugerencia para mí? – Teiv
"También quiero hacer un poco con el contenido entre las etiquetas" 'preg_replace_callback()' es ideal para esto. Si nos puede dar un ejemplo sólido de lo que está tratando de hacer exactamente, podemos darle consejos más específicos. –