如何在jquery中使用正则表达式搜索确切的数字

时间:2013-12-06 02:15:59

标签: javascript jquery regex

我找到了一个可以搜索多个单词并将导致多个结果的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

http://jsfiddle.net/ANLgD/30/

2 个答案:

答案 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