String 通过带有空格和逗号分隔符的文本输入对列表进行多个筛选

String 通过带有空格和逗号分隔符的文本输入对列表进行多个筛选,string,list,filter,String,List,Filter,我正在使用这个有用的模板: 但是,我想让空格(如果可能的话,还有逗号)被读取,以便允许多个单独的过滤器(可能被读取为~和(逻辑)语句,我不确定),就像在这个网站上的“农业和生物科学研究者”过滤器中所做的那样: 以下是我一直在寻找的答案(非常感谢我的朋友JKV!): 函数myFunction(){ var输入、过滤器、ul、li、a、i、allfound; 输入=document.getElementById(“myInput”); filter=input.value.toUpperCase

我正在使用这个有用的模板:

但是,我想让空格(如果可能的话,还有逗号)被读取,以便允许多个单独的过滤器(可能被读取为~和(逻辑)语句,我不确定),就像在这个网站上的“农业和生物科学研究者”过滤器中所做的那样:
以下是我一直在寻找的答案(非常感谢我的朋友JKV!):


函数myFunction(){
var输入、过滤器、ul、li、a、i、allfound;
输入=document.getElementById(“myInput”);
filter=input.value.toUpperCase().trim().split(/,|/);
ul=document.getElementById(“myUL”);
li=ul.getElementsByTagName(“li”);
对于(i=0;i
<script>
function myFunction() {
    var input, filter, ul, li, a, i, allfound;

    input = document.getElementById("myInput");
    filter = input.value.toUpperCase().trim().split(/,| /);
    ul = document.getElementById("myUL");
    li = ul.getElementsByTagName("li");
    for (i = 0; i < li.length; i++) 
{       allfound = true;
        a = li[i].getElementsByTagName("a")[0].innerHTML.toUpperCase();
        for (var w = 0; w < filter.length; w++) {
            if (a.indexOf(filter[w].trim()) == -1) {
                allfound = false;
                break;
            }
        }
        li[i].style.display = allfound?"":"none";
    }
}
</script>