Worklight项目 - dojo query()使用变量而不是文本

时间:2013-07-26 12:27:58

标签: ibm-mobilefirst dojo

如果我使用这个dojo指令,并且一切正常。

sampleStore.query({ item_name:/^aa/}, {sort: [{attribute: "des"}]});

如何使用变量(过滤器)代替“aa”,例如

var filter="aa";
sampleStore.query({ item_name:/^filter/}, {sort: [{attribute: "des"}]});//don't work

sampleStore.query({ item_name:/^"+filter+"/}, {sort: [{attribute: "des"}]});//don't work

1 个答案:

答案 0 :(得分:1)

您不能在JavaScript正则表达式中使用字符串。如果你想做类似的事情,你需要使用new RegExp()来创建一个基于字符串的正则表达式。

sampleStore.query({ item_name: new RegExp('^' + filter) }, {sort: [{attribute: "des"}]});

注意:如果您以这种方式使用正则表达式,则无法添加分隔符/。如果您需要添加i等修饰符(不区分大小写/.*/i),可以使用以下命令执行此操作:

new RegExp(".*", i);