【发布时间】:2020-08-28 04:05:06
【问题描述】:
我在字符串中有一个关键字数组:
var keywords = ["Hello World", "or"];
我有一行文字,例如:
var text = "Hello World, Hello World";
我正在使用 RegEx 在文本中查找要突出显示的关键字,以便生成的 html 为:
<span class="highlight">Hello World</span>, <span class="highlight">Hello World</span>
但是,我的 RegEx 结果返回给我:
[
0: "or" ----------> shouldn't it be "Hello World"?
index: 7
input: "Hello World, Hello World"
]
这是我的代码:
function searchFn(text, keywords) {
regex = new RegExp(keywords.join("|");
return regex.exec(text);
}
var text = "Hello World, Hello World";
var keywords = ["Hello World", "or"];
searchFn(text, keywords);
我的 RegEx 错了吗?
【问题讨论】:
-
使用
regex = new RegExp("\\b(?:" + keywords.sort(function(a, b){ return b.length - a.length; }).join("|") + ")\\b", "g");
标签: javascript regex search match regex-group