如何使用javascript替换彩色文本的文本

时间:2015-01-20 08:14:05

标签: javascript jquery html css regex

我在文本区域中有这个文本。

{color:#c91d1d}Hello{color}  

提交时,我希望{}标记之间的文字以{}标记内的颜色显示颜色:

我怎么能在javascript中这样做

4 个答案:

答案 0 :(得分:0)

使用内置函数的javascript来提取颜色代码

 var colorValue = str.substring(7, 7);

从第7位提取7个字符。

现在使用以下方式更改颜色:

document.getElementById("myH2").style.color = colorValue;

我希望这会起作用

答案 1 :(得分:0)

你可以使用像

这样的正则表达式

$('#input').on('input', function() {
  $('#result').html(this.value.replace(/\{color:(.*?)\}(.*?)((\{color\})|$)/g, '<span style="color:$1">$2</span>'));
}).triggerHandler('input');
textarea {
  width: 100%;
  min-height: 100px;
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>
<textarea id="input">{color:#c91d1d}Hello{color} - {color:green}hi{color}</textarea>
<div id="result"></div>

答案 2 :(得分:0)

Arun是对的,如果你只是需要得到&#34;你好&#34;来自&#34; {color:#c91d1d}你好{color}&#34;字符串,你可以这样做

&#13;
&#13;
var justtext="{color:#c91d1d}Hello{color}".match(/\{.*\}(.*)\{.*\}/)[1];
&#13;
&#13;
&#13;

要在textarea中完全替换文本,请输入代码。假设textarea具有id属性&#34; textarea1&#34;,用你的id更改它。

&#13;
&#13;
var textwithcolor =$("#textarea1").text();
var justtext=textwithcolor.match(/\{.*\}(.*)\{.*\}/)[1];
$("#textarea1").text(justtext);
&#13;
&#13;
&#13;

答案 3 :(得分:0)

这是如何做到的 无需使用正则表达式。

试试这个

var str = $('#t').text();
var res = str.substring(7, 14);
newstr = str;
while (newstr.indexOf("{color}") > -1) {
  newstr = newstr.replace("{color}", "</div>");
}
while (newstr.indexOf("{color:") > -1) {
  newstr = newstr.replace("{color:", "<div style='color:");
  newstr = newstr.replace("}", "'>");
}

document.getElementById("t").innerHTML = newstr;
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div id="t">{color:#c91d1d}Hello{color}
   {color:red}How{color} {color:yellow}are{color} {color:green}you{color}
</div>