【发布时间】:2023-03-08 10:48:01
【问题描述】:
这是我从文本字符串中突出显示特定单词的脚本我唯一的问题是,当我想突出显示三个序列单词时,它只突出显示第一个单词,然后第二个仍然没有突出显示,然后突出显示第三个单词
* 被截断并且运行良好
? 高亮单词+ n 个字符
这是一个突出显示 n 个序列单词的示例。
我的问题在这里我想突出显示""里面的词
当我有双引号时,突出显示引号内的单词。
"reference is" 需要高亮而不是分隔的单词
exp:参考好是test1 test2(这里只高亮reference is)
var row = {
"Abstract": "I have a reference server for reference and just a server here."
};
//here i need to highlight "reference is" to serve test* (n sequnence words)
var wordsToHighlight = '"reference is" to ser?? test*';
var result = row["Abstract"];
wordsToHighlight.split(" ").forEach(function (word) {
word = word.replace(/\*/g, '\\S*').replace(/\?/g, '.').replace(/\"/g, '.');
result = result.replace(new RegExp('(\\s|^)(' + word + ')(?=\\s|$)', "gi"),'$1<span style="background-color:yellow;">$2</span>');
});
document.querySelector("#result").innerHTML = result;
<div id="result"></div>
【问题讨论】:
-
你应该解释你所追求的。在我看来,您并没有真正尝试解决当前的问题。荧光笔应该如何解析
var wordsToHighlight = '"reference is" to ser?? test*'? -
当我有双引号时会突出显示其中的单词
-
to servetesttestingtests也需要高亮加上reference is -
它就像魅力一样!非常感谢!
标签: javascript regex