尝试搜索具有额外字符的字符串,在拍摄查找功能之前应删除该字符串。
E.g。 搜索字符串是“John”,而我希望返回所有可能的变体,其中包含“^”(J ^ ohn,Jo ^ hn,Joh ^ n,^ John,John ^)作为正确的变体。
JS部分:
$(document).ready(function()
{
$('#search').keyup(function()
{
searchTable($(this).val());
});
});
function searchTable(inputVal)
{
var table = $('#tblData');
table.find('tr').each(function(index, row)
{
var allCells = $(row).find('td');
if(allCells.length > 0)
{
var found = false;
allCells.each(function(index, td)
{
var regExp = new RegExp(inputVal, 'i');
if(regExp.test($(td).text()))
{
found = true;
return false;
}
});
if(found == true)$(row).show();else $(row).hide();
}
});
}
HTML部分:
<div class="tables">
<p>
<label for="search">
<strong>Enter name</strong>
</label>
<input type="text" id="search"/>
<label></label>
</p>
<table id="tblData" class="target table table-bordered table-striped">
<tr>
<th>First Name</th>
<th>Last Name</th>
<th>number</th>
<th>letters</th>
<th>Gender</th>
<th>Company</th>
</tr>
<tr>
<td>Jo^hn</td>
<td>Lenno^n</td>
<td>151</td>
<td>sf</td>
<td>Male</td>
<td>SMS Global (Technologies)</td>
</tr>
<tr>
<td>Pau^l</td>
<td>McC^artney</td>
<td>753</td>
<td>tj</td>
<td>Male</td>
<td>SMS Global (Services)</td>
</tr>
<tr>
<td>George</td>
<td>Harrison</td>
<td>24</td>
<td>ge</td>
<td>Female</td>
<td>SMS AIM Technologies</td>
</tr>
<tr>
<td>Ringo</td>
<td>Starr</td>
<td>26</td>
<td>hg</td>
<td>Female</td>
<td>SMS Global (Help Desk)</td>
</tr>
</table>
以下是示例:
答案 0 :(得分:0)
只需更换所有“^”,然后尝试将输入字符串与数据进行比较,如下所示。
var inputString="jOhn";
inputString=inputString.toLowerCase();
var text="jOH^n";
text=text.toLowerCase();
text=text.replace("^","");
(text===inputString)?true:false;
如果您想使用文字相似性,那么您可以使用任何文字相似度算法,例如Levenshtein string matching算法,以便快速解决此库:fuzzyset