0

我有如下数据:

记录 1:

Winter 2014 - Barrie, Muskoka
<br style="display: block;">
Summer 2014 - Orangeville, Owen Sound
<br style="display: block;">
Fall 2013 - Barrie

记录 2:

Winter 2014 - Barrie
<br style="display: block;">
Fall 2013 - Barrie

我需要通过标签在 AND 和 OR 上过滤它。有一个校园过滤器和一个术语过滤器 - 在每个过滤器中,您可以选择多个校园或多个术语,并且需要进行相应的过滤。

例如:

Campus: Orangeville,Barrie
Term: Summer 2014,Winter 2014

上述标签应返回两个结果,因为第一条记录将 Orangeville 列在 Summer 2014 旁边,第二条记录将 Barrie 列在 Winter 2014 旁边。

经过一些研究和测试,我认为我需要以下内容,但我不能让它正常工作......我有点像正则表达式初学者。

(?=Winter\ 2014\ \-\ (Barrie|Orangeville))(?=Summer\ 2014\ \-\ (Barrie|Orangeville))

谢谢。

4

1 回答 1

1

如果我理解正确,您可以像这样匹配它:

var campuses = ["Barrie", "Orangeville"];
var terms = ["Winter 2014", "Summer 2014"];

var your_regex = new RegExp("(" + terms.join("|") + ")\\s-\\s(" + campuses.join("|") + ")");

然后测试您的记录是否匹配:

if (your_regex.test(your_record)) {
  // Record matches
}
于 2013-07-12T15:03:30.080 回答