Javascript逻辑搜索?

时间:2012-05-01 11:53:43

标签: javascript full-text-search logic boolean

我已经为以下几行javascript对象构建了一个搜索函数:

  1. 用户在表单输入框中键入文本
  2. 循环对象数组
  3. 如果对象文本包含输入的文本,请将对象推送到单独的“已过滤”数组
  4. 显示已过滤的数组
  5. 使用javascript中内置的字符串search()函数即可正常工作。

    if(objectarray[i].text.search(userstring)>=0){  
        filteredarray.push(currentobject)  
    };
    

    现在,客户希望按照以下方式进行更高级的搜索:

    查找文本包含的对象(x1或x2)和(x3或x4或x5)

    其中每个x都是一个单词,当满足上述条件时,对象将被推入过滤后的集合中。

    是否有内置函数可以处理这种复杂的布尔语句?

1 个答案:

答案 0 :(得分:2)

使用this question的答案

我接受这个:

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)

N.B。将搜索函数返回的数字响应转换为布尔值

,需要'> = 0'
相关问题