我找到了一个可以搜索多个单词并将导致多个结果的jsfiddle代码。 现在我只想搜索数字列。我尝试搜索2,结果是两列,即2和24.我知道为什么因为2也在24中。我想只显示2。但是“多重”搜索的jsfiddle的功能不会受到影响。就像我搜索“2 24”或“2 | 24”那样它将显示2和24
的时间这是表格
<input id="emp_search" />
<input id="search" type="button" value="search" />
<table>
<tr>
<th>First Name</th>
<th>Last Name</th>
<th>number</th>
<th>letters</th>
<th>Gender</th>
</tr>
<tr>
<td>John</td>
<td>Lennon</td>
<td>2</td>
<td>sf</td>
<td>Male</td>
</tr>
<tr>
<td>Paul</td>
<td>McCartney</td>
<td>3</td>
<td>tj</td>
<td>Male</td>
</tr>
<tr>
<td>George</td>
<td>Harrison</td>
<td>24</td>
<td>ge</td>
<td>Female</td>
</tr>
<tr>
<td>Ringo</td>
<td>Starr</td>
<td>36</td>
<td>hg</td>
<td>Female</td>
</tr>
</table>
和js
if (!RegExp.escape) {
RegExp.escape = function (s) {
return s.replace(/[\-\[\]{}()*+?.,\\\^$|#\s]/g, "\\$&")
};
}
jQuery(function ($) {
///search this table
$(' #search ').click(function () {
var searchthis = new RegExp(' '+$(' #emp_search ').val().replace(/ /g,"|"), 'i');
$("table").find("tr").slice(1).each(function (index) {
// var text = $(this).find("td").text().toLowerCase().trim();
var text = $.trim($(this).text());
$(this).toggle(searchthis.test(text));
});
});
});
这里是jsfiddle
答案 0 :(得分:1)
这里不需要正则表达式
jQuery(function ($) {
var $input = $(' #emp_search ');
///search this table
$(' #search ').click(function () {
var s = $.map($.trim($input.val()).split(/\s+/), function(val){
return '\\b' + RegExp.escape(val) + '\\b'
}).join('|');
var searchthis = new RegExp(s, 'i');
$("table").find("tr").slice(1).each(function (index) {
var text = $.trim($(this).find('td:nth-child(3)').text());
$(this).toggle(searchthis.test(text));
});
});
});
演示:Fiddle
答案 1 :(得分:0)
试试这个:
var re = /[^0-9]/g;
var error = re.test(BlkAccountIdV);
error will be true if value of BlkAccountIdV is not numeric