0

如果我使用这个 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
4

1 回答 1

1

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

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

注意:如果您以这种方式使用正则表达式,则无法添加分隔符/。如果您需要添加i(case insensitive /.*/i) 之类的修饰符,您可以使用:

new RegExp(".*", i);
于 2013-07-26T14:20:35.367 回答