Как я могу искать в таблице HTML только точное совпадение с моим вводом в строке поиска?

В настоящее время я использую приведенный ниже код для создания одноколоночного поиска таблицы 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>

person Sarah S.    schedule 20.05.2016    source источник


Ответы (1)


сначала используйте toUpperCase()

тогда вы можете просто использовать ===, если вы хотите отличить только G, PG, PG-13, R, NC-17, вы не

person ZhiLI    schedule 20.05.2016