使用jQuery正确替换纯文本

时间:2015-03-14 13:54:14

标签: jquery html text replace replacewith

这是替换文字script

我称之为:

$(document).ready(function() {
$('#test-id').replaceText(/\[this\]/g,'<b>').replace(/\[\/this\]/g,'</b>');
});

它应该只在下面加粗[this] bold text [/this] HTML

<span id="test-id"> [this] This is some text that contains [/this] red color with bold text</span>

它只应在此[this][/this]内加粗文字,但问题是它还会使其他文字加粗,而不是隐藏最后一个[/this]

我也试着称之为:

$('#test-id').replaceText(/\[this\]/g,'<b>');

因此,请建议如何仅替换[this] This is some text that contains [/this],而不是其他文字,并隐藏最后[/this]个。

请参阅小提琴:http://jsfiddle.net/vw5b1szm/1/

感谢。

1 个答案:

答案 0 :(得分:1)

你可以做到

$('#test-id').replaceText(/\[(\/)?this\]/g, '<$1b>');

演示:Fiddle

由于您正在进行基于dom的替换,因此无法通过两个步骤执行此操作,即[this][/this]无法在两个不同的调用中替换,而您需要在一次调用中替换它到replaceText。您第二次替换是使用replace而不是replaceText