2012-03-19 87 views
0

我试图实现一个简单和高级的搜索,让我只需键入搜索默认参数,但也有一个高级搜索框。简单/高级搜索

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

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

我的话,什么是分裂的正则表达式“标准1:等等等等criteria2:FOO criteria3:酒吧”

或另一种解决方案将是一个jQuery插件,做到这一点。

+1

您有具体问题吗? – AlexMA 2012-03-19 15:07:32

+0

问题已更新。 – 2012-03-19 15:10:07

+0

Arent RegExps限于最多10个变量? – Amberlamps 2012-03-19 15:14:12

回答

0

的最直接方式是使用正前瞻:

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

你需要改变允许作为标准名称,标准值是什么人物。

+0

这个工作,如果criteria1 =等等等等等等等等?或任何数量或参数? – 2012-03-19 15:24:09

+0

当然。允许空间作为标准值(参见第二个括号中的\ s')。如果你愿意,你可以考虑不同的使用/测试案例,并与他们更新你的答案。 – kirilloid 2012-03-19 15:28:36

+0

这是辉煌的谢谢:) – 2012-03-19 15:38:19