Javascript 修改代码以包装整个单词&;使其不区分大小写 函数过滤器搜索词(){ var query=$(“#searchquery”).val(); go(查询); 函数go(查询){ $(“.search result p:contains(“+query+”).html(函数(\ux,html){ 返回html.replace(查询,$&,'gi'); }); $(“.search result h2 a:包含(“+query+”).html(函数(\ux,html){ 返回html.replace(查询,$&,'gi'); }); console.log(查询); } }
这是我的尝试。它可以添加跨度,但仅添加到包含字符串的单词或部分单词。假设字符串是Pie,它将跨度添加到所有“Pie”并在Piechart中包装“Pie”,但是我希望它包装所有Piechart,并且不带大写字母的Pie 有人可以修改我的代码来帮助我吗 谢谢 我尝试使用正则表达式“gi”似乎不起作用:/ 更新 快到了Javascript 修改代码以包装整个单词&;使其不区分大小写 函数过滤器搜索词(){ var query=$(“#searchquery”).val(); go(查询); 函数go(查询){ $(“.search result p:contains(“+query+”).html(函数(\ux,html){ 返回html.replace(查询,$&,'gi'); }); $(“.search result h2 a:包含(“+query+”).html(函数(\ux,html){ 返回html.replace(查询,$&,'gi'); }); console.log(查询); } },javascript,jquery,Javascript,Jquery,这是我的尝试。它可以添加跨度,但仅添加到包含字符串的单词或部分单词。假设字符串是Pie,它将跨度添加到所有“Pie”并在Piechart中包装“Pie”,但是我希望它包装所有Piechart,并且不带大写字母的Pie 有人可以修改我的代码来帮助我吗 谢谢 我尝试使用正则表达式“gi”似乎不起作用:/ 更新 快到了 function filterSearchWords() { var query = $("#searchquery").val(); go(query);
function filterSearchWords() {
var query = $("#searchquery").val();
go(query);
function go(query) {
$(".search-result p:contains(" + query + ")").html(function (_, html) {
return html.replace(query, "<span class='search-enlight'>$&</span>", 'gi');
});
$(".search-result h2 a:contains(" + query + ")").html(function (_, html) {
return html.replace(query, "<span class='search-enlight'>$&</span>", 'gi');
});
console.log(query);
}
}
函数过滤器搜索词(){
var query=$(“#searchquery”).val();
go(查询);
函数go(查询){
$.extend($.expr[':']{
“containsi”:函数(元素、i、匹配、数组){
return(elem.textContent | | | elem.innerText | |“”).toLowerCase()
.indexOf((匹配[3]| |“”).toLowerCase())>=0;
}
});
$(“.search result p:containsi(“+query+”)).html(函数(){
返回html.replace(新的RegExp(查询,“gi”),“$&”);
});
$(“.search result h2 a:containsi(“+query+”)).html(函数(\ux,html){
返回html.replace(新的RegExp(查询,“gi”),“$&”);
});
console.log(查询);
}
}
这是我的最后一个问题。我已成功删除区分大小写的部分,但它与整个单词不匹配。关于第三个标志参数的注释来自: 注意:flags参数在v8 Core(Chrome和Node.js)中不起作用 您应该改用对象:
function filterSearchWords() {
var query = $("#searchquery").val();
go(query);
function go(query) {
$.extend($.expr[':'], {
'containsi': function (elem, i, match, array) {
return (elem.textContent || elem.innerText || '').toLowerCase()
.indexOf((match[3] || "").toLowerCase()) >= 0;
}
});
$(".search-result p:containsi(" + query + ")").html(function (_, html) {
return html.replace(new RegExp(query, "gi"), "<span class='search-enlight'>$&</span>");
});
$(".search-result h2 a:containsi(" + query + ")").html(function (_, html) {
return html.replace(new RegExp(query, "gi"), "<span class='search-enlight'>$&</span>");
});
console.log(query);
}
}
返回html.replace(新的RegExp(查询,“gi”),“$&”);
现在它可以工作了。见第一篇文章。还有一个问题/
return html.replace(new RegExp(query, "gi"), "<span class='search-enlight'>$&</span>");