javascript - 使用 Jquery 使用正则表达式从 HTML 表中获取所有数据
问题描述
我有一个代码应该根据条件从 HTML 表中过滤数据。我的表中有大约 200 条记录,其中许多是通用名称
例如,我有一行值为“GowriLakshmi”,所以如果我搜索“%Laksh%”,它应该显示所有名称,其中包含 Laksh 名称。
所以目前我尝试了但没有得到它。它没有给我任何错误。但我无法找到逻辑。所以任何人都可以帮助我解决这个问题。
附加代码:
const table = $('#tblfiles');
$('#tblfiles').dataTable({
'search': {
'smart': false,
'regex': true
}
});
$('.dataTables_filter input').unbind().bind('keyup', function() {
const searchTerm = this.value.toLowerCase().replace(/,/g, '|').replace('%', '.*');
var LastItem = ''
var lastChar = searchTerm[searchTerm.length -1];
if(lastChar == '|'){
LastItem = (searchTerm.substring(0,searchTerm.length - 1));
}
//Regex to be used : -- > \wst\w*
const regex = '\\b(' + searchTerm + ')\\b';
table.DataTable().rows().search(regex, true, false).draw();
});
body {
font-size: 12px !important;
padding: 2em;
}
.dataTables_length {
display: none;
}
<script src="https://cdnjs.cloudflare.com/ajax/libs/chance/1.1.7/chance.min.js"></script>
<link href="https://cdn.datatables.net/1.10.24/css/dataTables.bootstrap4.min.css" rel="stylesheet" />
<link href="https://cdnjs.cloudflare.com/ajax/libs/twitter-bootstrap/4.5.2/css/bootstrap.css" rel="stylesheet" />
<script src="https://code.jquery.com/jquery-3.3.1.js"></script>
<script src="https://cdn.datatables.net/1.10.19/js/jquery.dataTables.min.js"></script>
<script src="https://cdn.datatables.net/1.10.19/js/dataTables.bootstrap4.min.js"></script>
<div id="nam"></div>
<br>
<table id="tblfiles" class="table table-striped table-bordered" style="width:100%">
<thead>
<tr>
<th>ID</th>
<th>Name</th>
</tr>
</thead>
<tbody>
<tr>
<td>111</td>
<td>GowriLakshmi</td>
</tr>
<tr>
<td>112</td>
<td>Lakshmi</td>
</tr>
<tr>
<td>113</td>
<td>Paaru</td>
</tr>
<tr>
<td>114</td>
<td>michael</td>
</tr>
<tr>
<td>115</td>
<td>Mohammed</td>
</tr>
<tr>
<td>1132</td>
<td>Naziya</td>
</tr>
<tr>
<td>1131</td>
<td>Nazriya</td>
</tr>
<tr>
<td>1131</td>
<td>LakshKarthyayini</td>
</tr>
</tbody>
</table>
所以我知道要使用哪个正则表达式,但是当我包含该正则表达式时,它没有按预期工作。我是这个 web 开发的新手,我还在学习。你们当中有人可以帮忙吗?
解决方案
要过滤带有值的记录,您可以将您的 searchTerm 直接传递给数据表的搜索功能。
尝试这个 :
const table = $('#tblfiles');
$('#tblfiles').dataTable({
'search': {
'smart': false,
'regex': true
}
});
$('.dataTables_filter input').unbind().bind('keyup', function() {
const searchTerm = this.value.toLowerCase();
table.DataTable().rows().search(searchTerm).draw();
});
推荐阅读
- python - 如何将角度舍入到最近的四分之一圆
- reactjs - 在Typescript的输入中设置特定字符粗体
- r - Boxplot 在 R 中使用 ggplot2 比较女性和男性数据以及所有数据
- javascript - Vuetify 的 v-autocomplete 组件在清除时将 v-model 值重置为 null
- php - MYSQLI Prepared statement update statement with where in array
- c# - 如何在 microsoft composer luis 调用中启用 bingSpellCheck?
- sql-server - SQL Server 不允许对系统目录进行临时更新以更新 sys.foreign_keys
- c# - SqlCommand with where clause backslashes
- jsf - mvnrepository 上最新的 JSF Faces 3.0 与 4.0
- python - Tensorboard:停止和恢复训练并显示整个图表