我正在制作一个brainfuck解释器(brainfuck是一种由8个符号组成的编程语言,它们是,.+-<>[]
)
有没有办法通过JavaScript为HTML文本区域中的单个字符的背景着色?
假设我的文本区域包含“hello world”。我希望能够告诉它为第3个字母上色,所以它会显示“他* l * lo world”(在这里使用粗体来说明颜色,因为我不知道如何在Stack Overflow编辑器中包含颜色。
有谁知道如何做到这一点,或者它是否可能? 任何帮助将不胜感激:=)
答案 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,您可以使用子选择器访问任何字符。