Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/silverlight/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
查找字符串中的第一个单词。在javascript中_Javascript_Split_Slice - Fatal编程技术网

查找字符串中的第一个单词。在javascript中

查找字符串中的第一个单词。在javascript中,javascript,split,slice,Javascript,Split,Slice,我正在做一项学校作业,在作业中,我们必须用按钮突出显示文本中“.”后的第一个单词 据我所知,我已经创建了一个HTML页面,HTML页面包含一个按钮,点击它应该会高亮显示“.”后的第一个单词。我发现我可能必须使用split和/或slice function highligtWord(){ var tekst = document.getElementById("tekst").innerHTML; for (var i = 0 ; i < tekst.lengt

我正在做一项学校作业,在作业中,我们必须用按钮突出显示文本中“.”后的第一个单词

据我所知,我已经创建了一个HTML页面,HTML页面包含一个按钮,点击它应该会高亮显示“.”后的第一个单词。我发现我可能必须使用split和/或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;     
}       
函数highligtWord(){
var tekst=document.getElementById(“tekst”).innerHTML;
对于(变量i=0;i
到目前为止,这并没有达到预期效果,因为它“突出”了不在“.”后面的单词。所以我的问题是,我做错了什么? 我怎样才能让你把所有的单词改为“highligt”


提前感谢

可能更容易使用正则表达式-匹配
\。
(一个文字点),然后匹配
\S+
-一个或多个非空格字符。然后替换为由突出显示范围包围的非空格字符:

const elm=document.getElementById(“tekst”);
elm.innerHTML=elm.innerHTML.replace(
/(\.*)(\S+/,
'$1$2'
);

foo-bar.baz应该突出显示。
感谢您的快速响应!:)我可能对JavaScript和regex不太熟悉,但我应该将/g放在哪里?再次感谢!所有正则表达式标志都放在同一个位置-在模式结束后。例如
/foo/g
foo
的全局模式,请考虑把它格式化为这样的片段。其他人可以清楚地看到你的问题。这只是一个建议,但是它可以提高你的问题的质量。你的代码还不完整。