简单/高级搜索

我正在尝试实现一个简单而高级的搜索,它只需键入搜索默认参数,但也有一个高级搜索框。

例如,在搜索框中,我搜索具有日期范围的“from”和“to”,并使用“from:xx / xx / xxxx to:xx / xx / xxxx”填写简单搜索,并将其转换为得到请求。

我认为我需要的是一个正则表达式来分割keyword:...keyword:...和字符串结束。

换句话说,什么是正则表达式分裂“criteria1:blah blah criteria2:foo criteria3:bar”

或者另一个解决方案是jquery插件来执行此操作。

最直接的方法是使用积极的预测:

 "criteria1:blah blah criteria2:foo criteria3:bar" .match(/([\w\d]+:[\w\d\s]+?)(?= [\w\d]+:|$)/g) // returns ["criteria1:blah blah", "criteria2:foo", "criteria3:bar"] 

您需要更改允许的字符作为条件名称和条件值。