HTML:更改textarea中单个字符的背景颜色?

时间:2013-03-01 11:10:19

标签: javascript html interpreter brainfuck

我正在制作一个brainfuck解释器(brainfuck是一种由8个符号组成的编程语言,它们是,.+-<>[]

有没有办法通过JavaScript为HTML文本区域中的单个字符的背景着色?

假设我的文本区域包含“hello world”。我希望能够告诉它为第3个字母上色,所以它会显示“他* l * lo world”(在这里使用粗体来说明颜色,因为我不知道如何在Stack Overflow编辑器中包含颜色。

有谁知道如何做到这一点,或者它是否可能? 任何帮助将不胜感激:=)

2 个答案:

答案 0 :(得分:3)

我认为Mukul在我的脑海中埋下了种子,但是这样的东西会很有用:

<textarea id="editor"></textarea>
<div id="render"> </div>

<script>

$(document).ready(function() {
  $("#editor").keyup(function() {
  var plaincontent = $("#editor").val();
  var richcontent = "";

  for (var i=0; i<plaincontent.length; i++) {
    if (plaincontent.charAt(i) == "[") {
      richcontent = richcontent + "<span style='color:#f00'>[</span>";
    } else {
      richcontent = richcontent + plaincontent.charAt(i);
    }
  }
  $("#render").html(richcontent);
});
});

</script>

它基本上取你在textarea中输入的内容并将其吐出到下面的div中,但是根据你输入的字符将其包含在跨度中。在上面的演示中,[字符将以红色显示。

你必须为所有不同的法律角色进行调整。

答案 1 :(得分:0)

虽然似乎不可能这样做,但我能想到的一个技巧是为每个角色使用多个 span ,并根据您的选择为它们提供背景颜色。

使用javascript,您可以使用子选择器访问任何字符。