Advertisement
Guest User

Untitled

a guest
Aug 24th, 2017
99
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 4.85 KB | None | 0 0
  1. <!DOCTYPE html>
  2. <html>
  3.  
  4. <head>
  5. <meta charset="utf-8">
  6. <meta name="viewport" content="width=device-width">
  7. <title>JS Bin</title>
  8. <style id="jsbin-css">
  9. * {
  10. list-style: none;
  11. padding: 0;
  12. margin: 0;
  13. }
  14. div {
  15. text-align: center;
  16. padding-top: 20px;
  17. }
  18. ul {
  19. padding-top: 20px;
  20. width: 30%;
  21. margin: 0 50% 0 35%;
  22. }
  23. li {
  24. padding: 3px;
  25. border: 1px solid silver;
  26. box-shadow: 1px 1px;
  27. }
  28. </style>
  29. </head>
  30.  
  31. <body>
  32. <div>
  33. <input type="text" id="txt">
  34. <button type="button" id="btn">search</button>
  35. <ul id="list">
  36. </ul>
  37. </div>
  38. <script id="jsbin-javascript">
  39. var oTxt = document.getElementById('txt');
  40. var oBtn = document.getElementById('btn');
  41. var oList = document.getElementById('list');
  42. var fruits = ["桃子", "苹果", "梨子", "香蕉", "香瓜", "葡萄", "柠檬", "橘子", "草莓"];
  43.  
  44. // 点击事件
  45. oBtn.addEventListener('click', function() {
  46. var keyWord = oTxt.value;
  47. // var fruitList = searchByIndexOf(keyWord,fruits);
  48. console.log(fruitList);
  49. var fruitList = searchByRegExp(keyWord, fruits);
  50. renderFruits(fruitList);
  51. }, false);
  52.  
  53. // 回车查询
  54. oTxt.addEventListener('keydown', function(e) {
  55. if (e.keyCode == 13) {
  56. var keyWord = oTxt.value;
  57. var fruitList = searchByIndexOf(keyWord, fruits);
  58. //var fruitList = searchByRegExp(keyWord, fruits);
  59. renderFruits(fruitList);
  60. }
  61. }, false);
  62.  
  63. // 渲染数据
  64. function renderFruits(list) {
  65. if (!(list instanceof Array)) {
  66. return;
  67. }
  68. oList.innerHTML = '';
  69. var len = list.length;
  70. var item = null;
  71. for (var i = 0; i < len; i++) {
  72. item = document.createElement('li');
  73. item.innerHTML = list[i];
  74. oList.appendChild(item);
  75. }
  76. }
  77.  
  78. // 模糊查询方法1: 利用字符串的indexOf方法
  79. function searchByIndexOf(keyWord, list) {
  80. if (!(list instanceof Array)) {
  81. return;
  82. }
  83. var len = list.length;
  84. var arr = [];
  85. for (var i = 0; i < len; i++) {
  86. // 如果字符串中不包含目标字符会返回-1
  87. // 模糊匹配的时候如果不区分大小写,可以使用toLowerCase()或者toUpperCase()转换之后去匹配
  88. if (list[i].indexOf(keyWord) >= 0) {
  89. arr.push(list[i]);
  90. }
  91. }
  92. return arr;
  93. }
  94. // 模糊查询方法2: 正则匹配
  95. function searchByRegExp(keyWord, list) {
  96. if (!(list instanceof Array)) {
  97. return;
  98. }
  99. var len = list.length;
  100. var arr = [];
  101. var reg = new RegExp(keyWord);
  102. for (var i = 0; i < len; i++) {
  103. // 如果字符串中不包含目标字符会返回-1
  104. if (list[i].match(reg)) {
  105. arr.push(list[i]);
  106. }
  107. }
  108. return arr;
  109. }
  110. renderFruits(fruits);
  111. </script>
  112.  
  113.  
  114. <script id="jsbin-source-css" type="text/css">* {
  115. list-style: none;
  116. padding: 0;
  117. margin: 0;
  118. }
  119. div {
  120. text-align: center;
  121. padding-top: 20px;
  122. }
  123. ul {
  124. padding-top: 20px;
  125. width: 30%;
  126. margin: 0 50% 0 35%;
  127. }
  128. li {
  129. padding: 3px;
  130. border: 1px solid silver;
  131. box-shadow: 1px 1px;
  132. }</script>
  133.  
  134. <script id="jsbin-source-javascript" type="text/javascript">var oTxt = document.getElementById('txt');
  135. var oBtn = document.getElementById('btn');
  136. var oList = document.getElementById('list');
  137. var fruits = ["桃子", "苹果", "梨子", "香蕉", "香瓜", "葡萄", "柠檬", "橘子", "草莓"];
  138.  
  139. // 点击事件
  140. oBtn.addEventListener('click', function() {
  141. var keyWord = oTxt.value;
  142. // var fruitList = searchByIndexOf(keyWord,fruits);
  143. console.log(fruitList);
  144. var fruitList = searchByRegExp(keyWord, fruits);
  145. renderFruits(fruitList);
  146. }, false);
  147.  
  148. // 回车查询
  149. oTxt.addEventListener('keydown', function(e) {
  150. if (e.keyCode == 13) {
  151. var keyWord = oTxt.value;
  152. var fruitList = searchByIndexOf(keyWord, fruits);
  153. //var fruitList = searchByRegExp(keyWord, fruits);
  154. renderFruits(fruitList);
  155. }
  156. }, false);
  157.  
  158. // 渲染数据
  159. function renderFruits(list) {
  160. if (!(list instanceof Array)) {
  161. return;
  162. }
  163. oList.innerHTML = '';
  164. var len = list.length;
  165. var item = null;
  166. for (var i = 0; i < len; i++) {
  167. item = document.createElement('li');
  168. item.innerHTML = list[i];
  169. oList.appendChild(item);
  170. }
  171. }
  172.  
  173. // 模糊查询方法1: 利用字符串的indexOf方法
  174. function searchByIndexOf(keyWord, list) {
  175. if (!(list instanceof Array)) {
  176. return;
  177. }
  178. var len = list.length;
  179. var arr = [];
  180. for (var i = 0; i < len; i++) {
  181. // 如果字符串中不包含目标字符会返回-1
  182. // 模糊匹配的时候如果不区分大小写,可以使用toLowerCase()或者toUpperCase()转换之后去匹配
  183. if (list[i].indexOf(keyWord) >= 0) {
  184. arr.push(list[i]);
  185. }
  186. }
  187. return arr;
  188. }
  189. // 模糊查询方法2: 正则匹配
  190. function searchByRegExp(keyWord, list) {
  191. if (!(list instanceof Array)) {
  192. return;
  193. }
  194. var len = list.length;
  195. var arr = [];
  196. var reg = new RegExp(keyWord);
  197. for (var i = 0; i < len; i++) {
  198. // 如果字符串中不包含目标字符会返回-1
  199. if (list[i].match(reg)) {
  200. arr.push(list[i]);
  201. }
  202. }
  203. return arr;
  204. }
  205. renderFruits(fruits);</script></body>
  206.  
  207. </html>
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement