我目前正在使用以下代码为网站上的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>
首先使用toUpperCase()
那么如果你只想区分G, PG, PG-13, R, NC-17
,你可以只用===
,你不想