我当前正在编写自己的BBCode解析器。现在我想做的是允许用户输入BBCode,然后它将其写入HTML并显示具有HTML的内容。但是,如果他们输入HTML,它将只是将其显示为普通的旧HTML。这是我到目前为止的内容:

var replacebbcode = $('#textareainput').val().replace(/(\[((\/?)(b|u|i|s|sub|sup))\])/gi, '<$2>');
$('#posttextareadisplay').html(replacebbcode);


在上面,我只是用HTML标记替换所有BBCode。问题是,如果用户直接输入HTML,它也会使用它。因此,基本上,如何将BBCode显示为HTML,但如何将实际HTML显示为文本?

最佳答案

设置目标的text()全文;因此您的HTML标记将被编码。然后在编码的HTML上执行BBCode替换:



$('#posttextareadisplay').text( $('#textareainput').val() );

var replacebbcode = $('#posttextareadisplay').
  html().
  replace(/(\[((\/?)(b|u|i|s|sub|sup))\])/gi, '<$2>');

$('#posttextareadisplay').html( replacebbcode );

<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>

<textarea name="" id="textareainput" cols="30" rows="10">
  [b]bold[/b] &lt;bold>bold&lt;/bold>
</textarea>

<p id="posttextareadisplay"></p>

关于javascript - 将HTML显示为文本,将BBCode更改为显示为HTML JQuery/JS,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/29977772/

10-09 15:16
查看更多