検索対象とする各行を <span class="line">...</span> で囲っておいて,
pattern にマッチした以外の行を非表示にするという手法を取っている
- JavaScriptのソース (元ソース)
function grep (pattern) { try { regex = new RegExp(pattern, "i"); spans = document.getElementsByTagName('span'); for (i = 0; i < spans.length; i++) { e = spans[i]; if (e.className == "line" && e.innerHTML.match(regex)) { e.style.display = "inline"; } else { e.style.display = "none"; } } } catch (e) { // 正規表現の文法エラーを無視する } }
<form onsubmit="grep(this.pattern.value); return false;"> <input type="text" name="pattern"> </form>