0
0

JavaScriptでの部分検索

Last updated at Posted at 2024-01-20

ES6での部分一致検索機能を作成しました。
配列から検索できるサンプルコードは検索しても見つからなかったので、その型だけここに残します。
大文字、小文字、全角、半角などのバリデーション判定は実装していないので、適宜調整します。

index.html
<input type="search" id="js-search" />
<ul id="js-stock">
  <li>入力してください...</li>
</ul>
script.js
const nameArray = [
  'tanaka',
  'yamada',
  'sato',
  'suzuki',
  'tanaka',
  'sato',
  'saito',
  'takahashi',
  'ito',
  'nakamura'
];
const searchInput = document.getElementById('js-search')
const searchItem = document.getElementById('js-stock')

searchInput.addEventListener('input', function () {
  let stockList = '';
  let stockCount = 0;

  nameArray.forEach(function (keyWord) {
    if (keyWord.includes(searchInput.value)) {
      stockList += `<li>'${keyWord}'が見つかりました。</li>`;
      stockCount++;
    }
  });
  while (searchItem.firstChild) {
    searchItem.removeChild(searchItem.firstChild);
  }

  if (stockList === '') {
    searchItem.innerHTML = `'${searchInput.value}'に一致する名前は見つかりませんでした。`;
  } else if (stockCount === nameArray.length) {
    searchItem.innerHTML = `入力してください...`;
  } else {
    searchItem.innerHTML = stockList;
  }
});

コピペだけでちゃんと動作する...はず。

参考

JavaScriptの文字列マッチングまとめ(indexOf, lastIndexOf)
JavaScript removeChildメソッドの使い方:既存の子要素を削除する方法

0
0
1

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0