我当前正在编写自己的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] <bold>bold</bold>
</textarea>
<p id="posttextareadisplay"></p>
关于javascript - 将HTML显示为文本,将BBCode更改为显示为HTML JQuery/JS,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/29977772/