与javascript匹配的单词函数
a matching word function with javascript
我正试图编写一些代码,将匹配键入与div' '类'可搜索'中的单词的文本输入,并突出显示这些单词。如果一个或多个单词匹配并且没有不匹配的单词,我现在的方法就可以工作。例如,如果可搜索的div有短语:hello world
,并且在输入中是hello world
,那么它将突出显示两者。如果输入只有hello
,它将突出显示该单词。但是如果输入的是hello mars
,它就不会突出显示单词hello
,因为mars
不在字符串中。这个jsFiddle演示了这一点。任何想法都非常感谢。下面是代码。谢谢你。
if($('#search').val().length !== 0){
$('.searchable').each(function(){
var search_value = $("#search").val();
var search_regexp = new RegExp(search_value, "g");
$(this).html($(this).html().replace(search_regexp,"<span class ='highlight'>"+search_value+"</span>"));
});
}
html: <input type = "text" id = "search" value = "hello mars">
<div class = "searchable">hello world</div>
像这样:
// http://stackoverflow.com/questions/3446170/escape-string-for-use-in-javascript-regex
String.prototype.pregQuote = function()
{
return this.replace(/['-'[']'/'{'}'(')'*'+'?'.'''^'$'|]/g, "''$&");
};
var keyword = $("#search").val();
var searchRegex = new RegExp( '(' + keyword.pregQuote() + ')' , "ig" );
$('.searchable').each(function(){
var html = $(this).html();
html = html.replace( searchRegex , '<span class="highlight">$1</span>');
$(this).html( html );
});
相关文章:
- 如何知道找到的单词是字符串的一部分还是JavaScript中的函数调用
- JavaScript 函数.返回单词出现的次数
- 为什么javascript函数名称custom是一个小写的单词,后跟一个大写的单词,就像'orangeCost'一样
- 如何在没有javascript中的split函数的情况下将字符串拆分为单词
- 我想使用replace函数扫描json对象,然后用字符串替换匹配的单词
- 编写函数,通过1个字符的JavaScript匹配单词
- 在 javaScript 中定义函数之前,什么意思是“一个单词:”
- 在双击/选择单词时在 chrome 扩展程序中运行函数
- 在 Javascript 中触发一个函数,如果单词在字典中
- 创建一个 JavaScript 函数来反转单词
- 在angularjs ng-change=“chk(query)”中,当键入单词后点击空格时调用函数
- Javascript函数,用于大写每个单词的首字母
- JavaScript字符,单词和空格计数函数
- Javascript函数生成符合元音和辅音模式的所有可能单词的列表
- 简化工作函数以替换特定单词
- 创建一个自动完成函数,不显示每个单词
- Javascript:使用.sort和compare函数查找数组中最长的单词
- Regex函数使单词标题大小写(包括连字符)
- Polyfill/fix用于在保留的JS单词(如'函数'
- 与javascript匹配的单词函数