我在文本区域中有这个文本。
{color:#c91d1d}Hello{color}
提交时,我希望{}标记之间的文字以{}标记内的颜色显示颜色:
我怎么能在javascript中这样做
答案 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;字符串,你可以这样做
var justtext="{color:#c91d1d}Hello{color}".match(/\{.*\}(.*)\{.*\}/)[1];
&#13;
要在textarea中完全替换文本,请输入代码。假设textarea具有id属性&#34; textarea1&#34;,用你的id更改它。
var textwithcolor =$("#textarea1").text();
var justtext=textwithcolor.match(/\{.*\}(.*)\{.*\}/)[1];
$("#textarea1").text(justtext);
&#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>