js正则实现前端搜索,匹配字符加红
来源:互联网 发布:企业淘宝账户怎么注册 编辑:程序博客网 时间:2024/06/08 07:28
一、介于公司需要,要开发一个比较简易的笔记本功能,里面要实现按照标题搜索,显示匹配项目,并在匹配项的字符加红显示,中间有空格的可以匹配任何字符。
二、具体的直接看源码吧,这里只是实现一下功能,就没有怎么注意代码的封装
<!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8"> <title>搜索数据,显示符合条件的内容,并显示出红色</title></head><body><input type="text" id="search"><input type="button" value="search" onclick="Submit()"><div id="content"></div><script src="NotesHelp.js"></script><script> var data = [ { "NoteID": "b89d9991-3538-439e-8a60-bbc097765a17", "Title": "张三的笔记", "Content": "测试笔记", "AddDate": "2016-06-24 10:27:46" }, { "NoteID": "b89d9991-3538-439e-8a60-bbc097765a17", "Title": "李四的笔记", "Content": "测试笔记", "AddDate": "2016-06-24 10:27:46" }, { "NoteID": "5903b14d-7108-4a5f-b81c-fec208b9ee19", "Title": "王五的笔记", "Content": "< p > 内容 < / p > ", "AddDate": "2016-06-25 17:12:41" }, { "NoteID": "5903b14d-7108-4a5f-b81c-fec208b9ee19", "Title": "张四的笔记", "Content": "< p > 内容 < / p > ", "AddDate": "2016-06-25 17:12:41" } ]; // var search = document.getElementById('search').value; function searchNotes(data, value) { var aData = [], aSearch = value.split(' '), k = 0, regStr = '', reg;// reg = new RegExp("(测)([\\s\\S]*)(你)([\\s\\S]*)(吗)"); for (var r = 0, lenR = aSearch.length; r < lenR; r++) { regStr += '(' + aSearch[r] + ')([\\s\\S]*)'; } reg = new RegExp(regStr); for (var i = 0, lenI = data.length; i < lenI; i++) { var title = data[i].Title, regMatch = title.match(reg), searchData = {}; k = 0; if (regMatch !== null) { var replaceReturn = ""; for (var j = 1, lenJ = regMatch.length; j < lenJ; j++) { if (regMatch[j] === aSearch[k]) { replaceReturn += '<span style="color:red;">$' + j + '</span>'; k++; } else { replaceReturn += '$' + j; } } for (var obj in data[i]) { if (data[i].hasOwnProperty(obj)) { searchData[obj] = data[i][obj]; } } searchData.Title = searchData.Title.replace(reg, replaceReturn);//.replace(reg, replaceReturn); aData.push(searchData); } } return aData; } /* var aNotes = searchNotes(data, search); var sNotes = ''; for (var i = 0, len = aNotes.length; i < len; i++) { sNotes += aNotes[i].Title + '</br>'; } document.getElementById('content').innerHTML = sNotes;*/ function Submit() { var search = document.getElementById('search').value; var aNotes = searchNotes(data, search);// console.log(data); var sNotes = ''; for (var i = 0, len = aNotes.length; i < len; i++) { sNotes += aNotes[i].Title + '</br>'; } document.getElementById('content').innerHTML = sNotes; }</script></body></html>
1 0
- js正则实现前端搜索,匹配字符加红
- js正则匹配特殊字符
- js 正则表达式匹配去除重复字符
- js里面正则表达式,匹配字符,不断更新
- js正则表达式匹配特殊字符
- 正则表达式 匹配特殊字符js
- 实现文本检索加红的JS源码
- 实现正则表达式匹配任意字符
- 搜索结果页面关键字加红加粗
- JS匹配任意字符的正则表达式写法
- js正则表达式 匹配两个特定字符间的内容
- js正则表达式 匹配两个特定字符间的内容
- js:快速学会应用正则表达式匹配字符
- js前端加行
- 正则表达式字符匹配
- 字符正则匹配
- 正则表达式字符匹配
- 正则匹配中文字符
- javascript 设定时间格式化函数
- 判断字符串中是否有相同的字符
- Java 下一代: Groovy、Scala 和 Clojure 中的共同点
- Java猜拳游戏
- spark机器学习笔记:(二)用Spark Python进行数据处理和特征提取
- js正则实现前端搜索,匹配字符加红
- LeetCode Largest Divisible Subset(动态规划)
- mongodb的聚合函数的$group方法运用。
- DrawerLayout的简单使用
- 定时调度线程池scheduleAtFixedRate和schedule方法
- 经常用到的Itent完全理解
- jackson 对象转换成json
- rsync+inotify实现服务器之间文件实时同步
- 如何在 Flickr 上找到又酷,又有趣,且版权自由的照片?