修改代码以换行整个单词&使它不区分大小写
Modify code to wrap whole words & make it non case sensitive
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);
}
}
这是我的尝试。它添加了span,但只添加了包含字符串的单词或部分单词。假设字符串是Pie,它将span添加到所有的"Pie"中,并将"Pie"包裹在Piechart中,但我希望它包裹所有的Piechart和Pie,没有大写字母。
谁能修改我的代码来帮助我?
感谢我尝试使用正则表达式"gi"似乎不工作:/
更新差不多了…
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);
}
}
这是我的最后一个问题。我已经成功地删除了区分大小写的部分,但是它不匹配整个单词。
关于MDN中第三个flags参数的说明:
注意:flags参数在v8 Core (Chrome和Node.js)中不起作用
你应该使用一个RegExp对象来代替:
return html.replace(new RegExp(query, "gi"), "<span class='search-enlight'>$&</span>");
相关文章:
- 如何使后缀函数不区分大小写
- 使搜索不区分大小写
- Regex:匹配以“AM”结尾的单词(不区分大小写比较)
- 如何使用jQuery进行不区分大小写的搜索
- 将字符串添加到不区分大小写的 RegExp 中替换的事物开始
- javascript从字符串创建不区分大小写的regex
- :包含不区分大小写的解决方案在替换文本以突出显示时不起作用
- 当涉及到if语句时,我如何使Javascript不区分大小写
- 使用简单的角度滤波器来替换输入字符串中某些字符串的所有出现,而不考虑大小写和空格
- Regex以匹配整数或单词“”;“其他”;,不区分大小写
- Javascript中不区分大小写的自动完成
- 使.search()对变量不区分大小写
- extjssortable不按大小写和日期排序
- 在DOM中搜索字符串时不区分大小写
- 不区分大小写的自动完成搜索(使用java、javascript、jquery)
- 如何将不区分大小写添加到照片库搜索框jquery
- 使答案不区分大小写
- 使用 Amazon Dynamo DB 进行不区分大小写的查询
- 正则表达式不区分大小写,输入匹配
- 不区分大小写的 jQuery 属性选择器