Javascript逻辑搜索?
我为javascript对象数组构建了一个搜索函数,如下所示:Javascript逻辑搜索?,javascript,full-text-search,logic,boolean,Javascript,Full Text Search,Logic,Boolean,我为javascript对象数组构建了一个搜索函数,如下所示: 用户在表单输入框中键入文本 循环遍历对象数组 如果对象文本包含输入文本,则将对象推入单独的“过滤”数组 显示过滤阵列 使用javascript ie中内置的string search()函数可以很好地工作 if(objectarray[i].text.search(userstring)>=0){ filteredarray.push(currentobject) }; 现在,客户希望按照以下内容进行更高级的
if(objectarray[i].text.search(userstring)>=0){
filteredarray.push(currentobject)
};
现在,客户希望按照以下内容进行更高级的搜索:
查找文本包含(x1或x2)和(x3或x4或x5)的对象
其中,每个x都是一个单词,当满足上述条件时,一个对象将被推送到过滤后的集合中
是否有一个内置函数可以处理这种复杂的布尔语句?使用
我认为:
var usersearchstring = "(x1 or x2) and (x3 or x4 or x5)";
并使用以下命令将其转换:
usersearchstring = usersearchstring.replace(/[-\w]+/g, "targetstring.toLowerCase().search('$&')>=0");
为此:
(targetstring.toLowerCase().search('x1')>=0 or targetstring.toLowerCase().search('x2')>=0) and (targetstring.toLowerCase().search('x3')>=0 or targetstring.toLowerCase().search('x4')>=0 or targetstring.toLowerCase().search('x5')>=0)
注意:'>=0'是将搜索函数返回的数字响应转换为布尔值所必需的。我喜欢自解问题…:)请考虑这个库,它要求使用解析来描述你所描述的事物: