Javascript 将跨距标记添加到前面带有特定字符的文本中

Javascript 将跨距标记添加到前面带有特定字符的文本中,javascript,jquery,html,Javascript,Jquery,Html,我有一个评论文本区和一个预览块(显示格式如这里所示) HTML <textarea id="comment"></textarea> <div id="preview-block"> <p id="text"></p> </div> 如何在标签前面添加带有的span标签来设置样式 >Here is a quote. Here is not a quote. 因此,格式化的HTML将类似于: <div

我有一个评论文本区和一个预览块(显示格式如这里所示)

HTML

<textarea id="comment"></textarea>
<div id="preview-block">
    <p id="text"></p>
</div>
如何在标签前面添加带有
span
标签来设置样式

>Here is a quote.

Here is not a quote.
因此,格式化的HTML将类似于:

<div id="preview-block">
    <p id="text"><span class="quote">Here is a quote.</span><br> Here is not a quote.</p>
</div>

这是一个报价。
这不是一个报价


您可能希望使用正则表达式来匹配字符串中与格式规则匹配的部分

请参阅,其中包含一个简单的正则表达式,它与您作为示例使用的规则完全匹配

>.+[\r\n]+
匹配字符>然后匹配除换行符以外的任何字符1次或多次。然后它必须以换行结束

然后将其替换为范围内的匹配内容,例如,请参见

。只需单击按钮即可查看效果。您可能还希望在标签等中添加类似的换行符。希望这有帮助

var text = $('#myTextArea').val();

text = text.replace(/>.+[\r\n]+/g, function(a){
    return '<span class="quote">' + a + '</span>';
})
var text=$('#myTextArea').val();
text=text.replace(/>.+[\r\n]+/g,函数(a){
返回“+a+”;
})

要设置
$('text')
的内容,请使用
$('text').html()

CSS

span.quote:before {
    content: ">";
}

不要忘了检查
:before
:after
伪元素。

在JS中如何执行?我对正则表达式一点也不熟悉<代码>“>引用的文本”。由于某些原因,替换(/>.+[\r\n]+/g,“???”)
。但这似乎是可行的:
setInterval(function(){var str=$('textarea#comment').val();str=str.replace(/>/g,”);str=str.replace(/[\n\r]/g,
”;$('text').html(str);},10)根据我提供的链接使用工作示例进行编辑,如果您想查看的话。您的解决方案也很有效。
span.quote:before {
    content: ">";
}