我正在做一个学校作业,我们必须突出显示“。”之后的第一个单词。按下按钮以显示文本。
据我所知,我已经创建了一个HTML页面,该HTML页面包含一个按钮,并且在单击时应该突出显示“”之后的第一个单词。我发现我可能不得不使用split和or 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;
}
到目前为止,这并不符合预期,因为它会突出显示不在“。”之后的单词。所以我的问题是,我做错了什么? 我如何才能让您“高亮”“”之后的所有单词。代替?
预先感谢
答案 0 :(得分:0)
使用正则表达式可能会更容易-匹配\.
(文字点),然后匹配\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
)。