gpt4 book ai didi

JavaScript 正则表达式忽略字符串

转载 作者:行者123 更新时间:2023-11-28 00:30:19 26 4
gpt4 key购买 nike

我有从服务器返回的搜索结果和一个使用搜索查询中的单词突出显示结果的正则表达式。

words = searchQuery.split(' ');

$.each(words, function() {

var word = this.trim();
var regex = new RegExp('(' + word + ')(?!>|b>)', 'gi');

searchResult = searchResult.replace(regex, "<b>$1</b>");

});

这工作正常,直到我搜索如下内容:

搜索词:“带有 javascript 的脚本”

搜索结果:“javascript是一种编程语言...”

它应该突出显示整个单词,例如“javascript是一种编程语言...”。但是,由于该字符串已从“javascript”更改为“java <b> script </b>”,因此它不再与搜索查询中的第二个单词匹配。当 word 的值时,它也会产生奇怪的值。是“b”、“/”、“<”或“>”。

我的问题是如何忽略<b></b>正则表达式中的标签并仅匹配原始搜索查询?我尝试使用前瞻,但没有成功。

最佳答案

我认为按字符串长度对数组进行降序排序可以解决这个问题:

words = searchQuery.split(' ');

words.sort(function(a, b){
return b.length - a.length;
});

$.each(words, function() {

var word = this.trim();
var regex = new RegExp('(' + word + ')(?!>|b>)', 'gi');

searchResult = searchResult.replace(regex, "<b>$1</b>");

});

关于JavaScript 正则表达式忽略字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29065656/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com