2017-04-04 95 views
-4

我正在创建一种编译器,当您在文本框中键入类似if或else的内容时,它会自动更改为红色。我只需要这个使用JavaScript如何在写东西(JavaScript)时自动更改文本的颜色?

+1

你最好先开始然后...... – NewToJS

+0

可能重复的[Textarea可以做动态语法突出显示?](http://stackoverflow.com/questions/1619167/textarea-that-c​​an-do-syntax -highlighting上即时) – JJJ

回答

0

你需要一个附加按键监听元素(不是输入元素)创建一个简单的编译器。您将收到的字符收集到令牌图中。

当您完成生成AST。用它来创建与类名HTML元素,以满足他们token class(如assignmentvariablestring。)

现在使用CSS附加样式,比如:

.variable-name {font-style: italic, color: #838383} 
.string {color: green} 
.operator {color: red} 
-1

你可能需要有一些规则表达式这个。因此,例如,你看看比赛的if语句:(简单的例子)

text.match(/(if)/g); 

,然后你可以只申请一类是:

text.classList.add('red'); 

所有的处理时,正则表达式可以变得相当复杂代码中括号和嵌套表达式中的可能性,正则表达式会非常强烈,所以祝你好运。我确信有比这更好的解决方案。