javascript - 如何在文本区域中设置特定单词的样式

标签 javascript html css

我的代码中有这样的内容(我不能在 StackOverFlow 中放入太多代码):

 <textarea id="text" style="width:500px;height:500px;">
    Have I Cherry
    Have I Banana
    Have I Apple
    Have I Banana
    Have I Strawberry
    </textarea>

在我的脚本中,我已经修复了订单,所以它变成了这样。

 <textarea id="result" style="width:500px;height:500px;">
I Have Cherry
I Have Banana
I Have Apple
I Have Banana
I Have Strawberry
</textarea>

我想要的是如果这个词是香蕉,style=黄色,否则style=红色。这是我尝试过的

lines = text.value.split('\n');
result.value = '';
for(var i = 0;i < lines.length;i++){
    var line = lines[i];
    var word = line.split(' ');
     var check = line.match(/Banana/);
     if(check) {
    result.value += word[1] + ' ' + word[0] + ' ' + word[2].style.color = "yellow";

结果应该是每个 Banana 单词都是黄色,其他单词是红色。记住不是整个句子都应该是黄色的,只有“Banana”才是黄色的。对 Javascript 还很陌生,谁能告诉我是否有办法做到这一点?

最佳答案

Textarea 不是执行您想要的操作的最佳方式,尝试使用具有可编辑内容的 div,您将可以更好地控制样式

https://developer.mozilla.org/en-US/docs/Web/Guide/HTML/Editable_content

这样你就可以将所有香蕉包裹在 <span style="color: yellow;"></span> 中。

关于javascript - 如何在文本区域中设置特定单词的样式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60235410/

相关文章:

mysql - 使用现有代码使用 MySQL 制作交互式网站的最佳方法是什么?

javascript - 忽略正则表达式中的重音

javascript - 在客户端显示服务器返回的HTML页面

javascript - 如何滚动 div 使其在 ReactJS 中可见?

html - 在 href mailto 链接中设置正文样式

javascript - 无法将复选框属性应用于 for 循环

javascript - JS : Unexpected end of script

javascript - nvd3 格式化日期始终返回 1970-01-01

javascript - 如何使用 casperjs 脚本运行外部程序(exe、bat)

javascript - Materialize css 触发器在 Vue js 中不起作用