如果阻止,检查完全匹配

时间:2016-05-11 15:53:27

标签: jquery

我需要能够使用jQuery检查列表中的完全匹配。

我需要能够判断它是否存在完全匹配,而不是存在子字符串匹配。

if ($('.validValuesListMain ul li:contains('+val+')').length ) {
    notImportedCount++;
} else {                    
    importCount++;
    $('.validValuesListMain ul').append('<span class="deleteValid" title="Delete Autofix">X</span><li class="validTag">'+val+'</li>');
}

流程

例如,当用户输入John Doe&#39;如果&#39; John Doe&#39;确实存在,然后错误。如果用户键入了John Doe&#39;在列表中有“John Do&#39;那么这没关系,因为它不完全匹配。

伪代码

If (John Doe) not exact match (John Do) {
    alert('no duplicates found');
} else {
    alert('duplicates found');
}

1 个答案:

答案 0 :(得分:1)

jquery中没有选择器可以执行此操作,您需要使用例如filter()each()来遍历元素,请查看以下示例:

var new_entry = "John Doe";
var duplicate = false;

$('.validValuesListMain ul li').filter(function() {
    if( $(this).text()==new_entry )
        duplicate = true;
})

if (duplicate){
    alert('duplicates found');
} else {
    alert('no duplicates found');
}

希望这有帮助。

$('body').on('input','input',function(){
  var new_entry = $(this).val();
  var duplicate = false;

  $('.validValuesListMain ul li').filter(function() {
    if( $(this).text()==new_entry )
      duplicate = true;
  })

  if (duplicate){
    alert('duplicates found');
  } else {
    alert('no duplicates found');
  }
})
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<input type="text" placehoslder="filter here"/>
<div class="validValuesListMain">
  <ul>
    <li>First</li>
    <li>Second</li>
    <li>Third</li>
  </ul>
</div>