jQuery table search list

by ajinkyax

HTML

<table class="table table-striped table-hover table-bordered table-condensed">
<thead>
    <tr>
        <th>Name</th>
        <th>Type</th>
        <th>Added</th>
    </tr>
</thead>
<tbody>
    <tr id="1a0daa2734" class="item">
        <td><a href="/view/1a0daa2734">Item Number 1</a></td>
        <td>A</td>
        <td>8/1/2012 10:18:34 PM</td>
    </tr>
    <tr id="b1ff6e0ac" class="item">
        <td><a href="/view/b1ff6e0ac">Item Number 2</a></td>
        <td>B</td>
        <td>8/2/2012 5:48:54 PM</td>
    </tr>
    <tr id="edd8b70893" class="item">
        <td><a href="/view/edd8b70893">Item Number 3</a></td>
        <td>A</td>
        <td>8/13/2012 3:55:41 PM</td>
    </tr>
</tbody>
</table>
<input id="search-items" />

JavaScript

function escapeRegex(value) {
    return value.replace(/[\-\[\]{}()*+?.,\\\^$|#\s]/g, "\\$&");
}

$(function() {
    $("#search-items").bind("keyup paste", function() {
        var searchText = $("#search-items").val(),
            regex = new RegExp(escapeRegex(searchText), "gi"),
            $items = $(".item").show();
        
        if (searchText) {
            $items.each(function() {
                var $tds = $("td", this).slice(0, 2),
                    text = $tds.text();

                if (text.search(regex) === -1) {
                    $(this).hide();
                }

            });
        }
    });
});