使用 JavaScript/jQuery 将 BBcode 转换为 HTML

Convert BBcode to HTML using JavaScript/jQuery

本文关键字:转换 HTML BBcode JavaScript jQuery 使用      更新时间:2023-09-26

我可以得到一些帮助来覆盖一些PHP代码到jQuery/JavaScript吗?我想要的是一个简单的BBCode到HTML转换器。

这是PHP代码。我想使用 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);

感谢您的帮助!

看起来您只需要将#更改为/is更改为ig但我还必须将/b更改为'/b

现场演示

$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)

其他现场演示

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;