3

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

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

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

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

4

2 回答 2

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 中,但根据您输入的字符将其包装在 span 中。在上面的演示中,[角色将以红色呈现。

您必须针对所有不同的合法字符对其进行调整。

于 2013-03-01T15:53:13.023 回答
0

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

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

于 2013-03-01T11:17:30.487 回答