javascript - 根据给定索引突出显示字符串

标签 javascript html css

假设我得到了

const s = "Old Man's War"
//Each indices represent the beginning and end index of the string
const indices = [
     [ 0, 0 ],
     [ 5, 5],
     [ 11, 11]
]

索引代表我要突出显示的内容的开始和结束。 所以我想返回类似的东西

<span class="bold">O</span>ld M
<span class="bold">a</span>n's W
<span class="bold">a</span>r

我该怎么做?似乎无法想出像样的算法。

最佳答案

一个选项是 .split()将字符串放入数组中,在 <span class="bold"> 前面加上在每个起始索引中附加 </span>到每个结束索引,和.join()它重新组合在一起:

const s = "Old Man's War"
const indices = [[0,0],[5,5],[11,11]]

let result = indices.reduce((str, [start,end]) => {
  str[start] = `<span class="bold">${str[start]}`;
  str[end] = `${str[end]}</span>`;
  return str;
}, s.split("")).join("");

document.getElementById("result").innerHTML = result;
.bold { font-weight: bold; }
<div id="result"></div>

关于javascript - 根据给定索引突出显示字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58532751/

相关文章:

jquery - 如何在 IE 中显示初始宽度等于最小宽度但可以根据需要扩展的 div?

css - Firefox 故障 CSS 转换

javascript - jquery改变背景大小

javascript - Jquery 滚动到顶部偏移量不起作用

javascript - 您可以在 getElementsByClassName ("")[] 中使用变量吗?如何?

html - 我的 CSS slider 不起作用

html - 使用 aria-hidden ="true"隐藏 flash 元素和 iFrame 是否有助于使我的网站可访问?

html - iOS5 Safari 仅将日期选择器附加到一个输入元素

javascript - 剑道JS : How to dynamically change dataTextField value on multilanguage web-application

javascript - 从外部 URL 通过 Ajax 调用获取 JSON 数据