我正在做一项学校作业,我们必须突出显示"后面的第一个单词"在文本中按下按钮。
到目前为止,我已经创建了一个HTML页面,HTML页面包含一个按钮,点击后应该高亮显示"后面的第一个单词"我发现我可能不得不使用split and或slice。
function highligtWord(){
var tekst = document.getElementById("tekst").innerHTML;
for (var i = 0 ; i < tekst.length; i++) {
var arr = tekst.split(". ")[i].split(" ")[0]
console.log(arr)
var res = tekst.replace(`${arr}`, "<span style=background-color:yellow>" + `${arr}` + "</span>" );
document.getElementById("tekst").innerHTML += res;
}
到目前为止,这并不像预期的那样起作用;突出显示";不在"后面的单词"所以我的问题是,我做错了什么?我怎样才能给你";highligt";所有单词都在"之后"相反
提前感谢
使用正则表达式-匹配.
(文字点(,然后匹配S+
-一个或多个非空格字符可能会更容易。然后替换为高亮范围所包围的非空格字符:
const elm = document.getElementById("tekst");
elm.innerHTML = elm.innerHTML.replace(
/(. *)(S+)/,
'$1<span style=background-color:yellow>$2</span>'
);
<div id="tekst">foo bar. baz should be highlighted.</div>
如果要突出显示.
后面的所有单词,请为正则表达式使用全局标志(使用/g
(。