在后面找到字符串中的第一个单词。在JavaScript中

时间:2020-10-16 23:13:32

标签: javascript split slice

我正在做一个学校作业,我们必须突出显示“。”之后的第一个单词。按下按钮以显示文本。

据我所知,我已经创建了一个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;     
}       

到目前为止,这并不符合预期,因为它会突出显示不在“。”之后的单词。所以我的问题是,我做错了什么? 我如何才能让您“高亮”“”之后的所有单词。代替?

预先感谢

1 个答案:

答案 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)。