将span标记添加到前面带有特定字符的文本

时间:2015-07-02 12:09:31

标签: javascript jquery html

我有一个评论textarea和一个预览块(在SO上显示格式如此)。

HTML

<textarea id="comment"></textarea>
<div id="preview-block">
    <p id="text"></p>
</div>

的JavaScript

setInterval(function(){
    $('#text').text($('textarea#comment').val());
},10);

如何在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>

2 个答案:

答案 0 :(得分:0)

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

请参阅this regex101 link,其中包含一个与您用作示例的确切规则相匹配的简单正则表达式。

>.+[\r\n]+

哪个匹配字符&gt;然后除换行符之外的任何字符1次或更多次。然后它必须以换行符结束。

然后,您将使用范围内的匹配内容替换它,例如参见this answer

Here is a simple working example。只需单击按钮即可查看效果。您可能还希望为换行添加类似的替换品,以便添加标签等。希望这会有所帮助!

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

text = text.replace(/>.+[\r\n]+/g, function(a){
    return '<span class="quote">' + a + '</span>';
})

答案 1 :(得分:-1)

要设置$sql = "INSERT INTO jobify_user (u_name,u_phonenumber,u_email,u_password) VALUES ('$username','$userphonenumber','$useremail','$userpassword')"; if ($conn->query($sql) === TRUE) { echo "New record created successfully"; } else { echo "Error: " . $sql . "<br>" . $conn->error; } 的内容,请使用$('#text')

<强> CSS

$('#text').html(<content>)

请勿忘记browser support检查span.quote:before { content: ">"; } :before伪元素。