現在、以下のコードを使用して、Web サイト上の HTML テーブルの単一列検索を作成しています。現時点では、検索バーに何かを入力すると、コードは検索した内容を含むすべての行を返します。たとえば (私はこれを映画の評価に使用しています)、検索バーに「G」と入力すると、G と評価されたものすべてが返されますが、PG または PG-13 と評価されたものもすべて返されます。検索に完全に一致する結果のみを返すようにこのコードを適応させる方法はありますか? つまり、"G" (または "g") を検索すると、G レーティングの映画だけが返され、PG や PG-13 とレーティングされたものは返されないように変更する方法はありますか?
ありがとうございました!
現在のコード:
<script type="text/javascript">
function searchRows(tblId) {
var tbl = document.getElementById(tblId);
var headRow = tbl.rows[0];
var arrayOfHTxt = new Array();
var arrayOfHtxtCellIndex = new Array();
for (var v = 0; v < headRow.cells.length; v++) {
if (headRow.cells[v].getElementsByTagName('input')[0]) {
var Htxtbox = headRow.cells[v].getElementsByTagName('input')[0];
if (Htxtbox.value.replace(/^\s+|\s+$/g, '') != '') {
arrayOfHTxt.push(Htxtbox.value.replace(/^\s+|\s+$/g, ''));
arrayOfHtxtCellIndex.push(v);
}
}
}
for (var i = 1; i < tbl.rows.length; i++) {
tbl.rows[i].style.display = 'table-row';
for (var v = 0; v < arrayOfHTxt.length; v++) {
var CurCell = tbl.rows[i].cells[arrayOfHtxtCellIndex[v]];
var CurCont = CurCell.innerHTML.replace(/<[^>]+>/g, "");
var reg = new RegExp(arrayOfHTxt[v] + ".*", "i");
if (CurCont.match(reg) == null) {
tbl.rows[i].style.display = 'none';
}
}
}
}
</script>