替换没有带span的结束标记的标记

时间:2016-10-11 21:08:44

标签: javascript jquery html css

我想做一些可能无法做到的事情,但这里什么也没做。

假设我有这个虚拟文本:“{red} Test {default} Message”(不带引号) 我想要一个(jQuery)脚本用span替换{red}并添加一个结束标记。 P元素将是格式化测试消息的位置。

E.G。

<p><span style="color:red;">Test</span> <span style="color:white;">Message</span></p>

我在互联网上搜索过,我只能找到被其他HTML元素替换的HTML元素。 (或类似的)。 我还没有尝试过,因为我不知道从哪里开始。

1 个答案:

答案 0 :(得分:0)

注意:使用initial颜色代替default

&#13;
&#13;
s = "{red}Test {initial}Message";
html = '<p>'+s.replace(/\{(\w*)\}([^{]*)/g,'<span style="color:$1">$2</span>')+'</p>'

document.body.innerHTML=html;
// inherit
s = "<br>{red}Red {initial}Initial and {inherit}Inherited colors";
html = '<p style="color:orange">'+s.replace(/\{(\w*)\}([^{]*)/g,'<span style="color:$1">$2</span>')+'</p>'

document.body.innerHTML+=html;
//with own colors
colors={
  red:'#5f0',
  green:'purple'
};
s = "<br>{red}Red {green}Green and {orange}orange colors";
html = '<p>'+s.replace(/\{(\w*)\}([^{]*)/g,function(s,s1,s2){
  if(colors[s1])
    s1=colors[s1];
  return '<span style="color:'+s1+'">'+s2+'</span>'
})+'</p>'

document.body.innerHTML+=html;
&#13;
&#13;
&#13;