Convert BBcode to HTML using JavaScript / jQuery

Can I get some help covering up some PHP code for jQuery / JavaScript? I want to just convert BBCode to HTML.

Here is the PHP code. I want to achieve the same using jQuery / JavaScript.

$str = htmlentities($str); // The array of regex patterns to look for $format_search = array( '#\[b\](.*?)\[/b\]#is', '#\[i\](.*?)\[/i\]#is', '#\[u\](.*?)\[/u\]#is', ); // The matching array of strings to replace matches with $format_replace = array( '<strong>$1</strong>', '<em>$1</em>', '<span style="text-decoration: underline;">$1</span>', ); // Perform the actual conversion $str = preg_replace($format_search, $format_replace, $str); 

Thanks for your help!

+4
source share
1 answer

It half looks like you just need to change # to / and is to ig , but I also had to change /b to \/b

Live demo

 $str = 'this is a [b]bolded[/b] and [i]italic[/i] string'; // The array of regex patterns to look for $format_search = [ /\[b\](.*?)\[\/b\]/ig, /\[i\](.*?)\[\/i\]/ig, /\[u\](.*?)\[\/u\]/ig ]; // note: NO comma after the last entry // The matching array of strings to replace matches with $format_replace = [ '<strong>$1</strong>', '<em>$1</em>', '<span style="text-decoration: underline;">$1</span>' ]; // Perform the actual conversion for (var i =0;i<$format_search.length;i++) { $str = $str.replace($format_search[i], $format_replace[i]); } alert($str) 

Another live demo

 function boldFunc(str, p1, offset, s) { return '<strong>'+encodeURIComponent(p1)+'</strong>' } function italicFunc(str, p1, offset, s) { return '<em>'+encodeURIComponent(p1)+'</em>' } function underlinedFunc(str, p1, offset, s) { return '<span class="un">'+encodeURIComponent(p1)+'</span>' } $str = 'this is a [b]bölded[/b], [i]itälic[/i] and [u]ünderlined[/u] [i]strïng[/i]'; // The array of regex patterns to look for $format_search = [ /\[b\](.*?)\[\/b\]/ig, /\[i\](.*?)\[\/i\]/ig, /\[u\](.*?)\[\/u\]/ig ]; // NOTE: No comma after the last entry // The matching array of strings to replace matches with $format_replace = [ boldFunc, italicFunc, underlinedFunc ]; // Perform the actual conversion for (var i =0;i<$format_search.length;i++) { $str = $str.replace($format_search[i], $format_replace[i]); } document.getElementById('output').innerHTML=$str; 
+7
source

Source: https://habr.com/ru/post/1395595/


All Articles