У меня есть проект, где мне нужно определить терминологию, специфичную для пола, но игнорировать совпадение, если оно включено в список фраз. Я могу заставить следующее работать, я предполагаю, что это очень неэффективно, но если я попытаюсь добавить в список больше терминов, я думаю, что я превосхожу длину символа для строки. Как я мог кодировать это лучше, возможно ли иметь два отдельных массива - один для списка слов для поиска (включая границы слов), а другой для списка исключенных фраз? Когда матч идентифицирован, он выделяется красным полем. Благодарю.JQuery соответствует текстовой строке, но исключает часть, если часть фразы
$('#body').filter(function(index,obj) {
if(/\b(boy)\b|\b(girl)\b|\b(son)\b|\b(daughter)\b|\b(grandfather)\b|\b(grandmother)\b|\b(father)\b|\b(mother)\b|\b(de facto)\b|\b(de-facto)\b|\b(husband)\b|\b(wife)\b|\b(lady)\b|\b(female)\b|\b(woman)\b|\b(gentleman)\b|\b(male)\b|\b(man)\b|\b(uncle)\b/.test($(obj).clone().removeInnerElements().html().toLowerCase())){
if(/(Wife Pension|Dad and Partner pay|Isle of Man|What a Man project)/.test($(obj).elements[0].innerHTML)) {
return false;
}
return true;
}
return false;
},
$(obj).css("border","solid 3px red");
Вы можете просто поставить отдельные термины в массив JS, а затем присоединиться к нему с правильным клеем (например, '\ B | \ b' или' | ', в зависимости от фильтрации вас ссылаются) на переменную, которую вы передаете методу '.test()'. Что-то вроде этого: http://stackoverflow.com/questions/28280920/convert-array-of-words-strings-to-regex-and-use-it-to-get-matches-on-a-string – Terry
Спасибо за ответ Терри. Я посмотрел на ссылку, которую вы предоставили, не имеет уверенности в том, чтобы от нее работать. – user3518221
Если бы кто-нибудь мог мне помочь написать, пожалуйста, я бы очень признателен, тогда я могу работать в обратном направлении и понимать, как все это подходит. – user3518221