jquery用text()替换未知字符的字符串

时间:2014-01-07 22:19:41

标签: jquery string text replace

我想替换,在text var中添加一些字符串以“包装”我的内容,然后稍后追加。

例如我在我的字符串var中有这个(在我的var中没有换行符):

[th_section type="boxed" bgcolor="" txtcolor=""]
[th_header type="h1" txtalign="txt-left" subtitle="essai subtitle" txtcolor=""]
HEADER 1
[/th_header]
[th_five_sixths txtalign="txt-left" boxed="" last_column="true"]
[th_header type="h5" txtalign="txt-left" subtitle="" txtcolor=""]
100% Responsive Design
[/th_header]
Phasellus enim libero, blandit vel sapien vitae, condimentum ultricies magna et. Quisque euismod orci ut et lobortis aliquam.
[/th_five_sixths]
[/th_section]

我想替换/添加像这样的p标签:

<p>[th_section type="boxed" bgcolor="" txtcolor=""]</p>
<p>[th_header type="h1" txtalign="txt-left" subtitle="essai subtitle" txtcolor=""]</p>
<p>HEADER 1</p>
<p>[/th_header]</p>
<p>[th_five_sixths txtalign="txt-left" boxed="" last_column="true"]</p>
<p>[th_header type="h5" txtalign="txt-left" subtitle="" txtcolor=""]</p>
<p>100% Responsive Design</p>
<p>[/th_header]</p>
<p>Phasellus enim libero, blandit vel sapien vitae, condimentum ultricies magna et. Quisque euismod orci ut et lobortis aliquam.</p>
<p>[/th_five_sixths]</p>
<p>[/th_section]</p>

事实上,我可能会搜索如何正则表达式:

$someDiv.replace('[th_*******]', '<p>[th_*******]</p>').replace('[/th_*******]', '<p>[/th_*******]</p>')

我不知道在这种情况下使用替换的正确方法是什么。括号之间的名称可以不同,除了[th _...]和[/ th _...] 也许我需要使用不同于替换的功能,我真的不知道......

2 个答案:

答案 0 :(得分:1)

我真的在正则表达式上很糟糕,但我认为这应该有效:

theString.replace(/\]([^\[]+)/g, function(m) {
   return "]<p>" + m.slice(1) + "</p>";
}).replace(/(\[.*?\])/g, "<p>$1</p>");  // /(\[\/?th_[^\]]*\])/g

http://jsfiddle.net/ujVrD/

答案 1 :(得分:0)

我可以指导你jQuerys .wrap() method。它将获取您选择的元素,并使用您在方法第一个参数中定义的标记来包装它们。在您的情况下,这将是.wrap('<p></p>')。我希望这会有所帮助。