如何制作一个接受正则表达式的搜索框来搜索数据
how do I make a search box that accepts regular expression to search data?
如果用户输入"Mil*",则搜索应返回"Milk"、"Milk Cake"、"Milk sweet"、"乳条巧克力"。。。我正在尝试制作一个SAPUI5应用程序,其中的过滤器可以理解正则表达式。然后将结果显示在表格中。
var oFilter = new sap.ui.model.Filter({
path : "ProductName",
operator : CustomFilterToAcceptRegEx,
value1 : "Milk"
});
我想不出该怎么做。任何建议都会有帮助。我对javascript&SAP UI5
由于您传递的运算符完全无效,上面的代码无法工作,请参阅sap.ui.model.Filter的API文档。只使用一个允许的FilterOperators。这里有一个例子:
var oFilter = new sap.ui.model.Filter({
path : "ProductName",
operator : sap.ui.model.FilterOperator.Contains,
value1 : "Milk"
});
上面的示例匹配"Milk",这意味着用户不需要使用"*",而是可以在(搜索)字段中输入"Milk"。
如果你想允许类似"M*lk"的东西,你可以使用这样的东西:
var oFilter = new sap.ui.model.Filter({
path : "ProductName",
test : function(oValue){
//do something
},
value1 : "Milk"
});
sap.ui.model.Filter的构造函数详细信息告诉您如何实现oFilterInfo.test函数:
函数,用于筛选应返回布尔值的项目,以指示当前项目是否保留
但是,要小心OData,因为ODataModel实际上是一个服务器端模型。如果您将OData与SAP网关结合使用,则"自由文本"搜索可能比使用过滤器更好。SAP GW识别用于自由文本搜索的查询参数"search"。然后,GW服务的实现应该正确地处理参数。。。
此外,请确保真正了解javascript中的regex是如何工作的。这里有一个例子:
RegExp(".*world.*", "g").test("hello world"); // true
还要考虑如何转义搜索字符串,使其成为有效的正则表达式。您不能简单地传入从搜索框中收到的任何字符串。因此,在继续之前,请先了解regex是如何使用javascript的。。。
相关文章:
- 在mongoose中使用正则表达式在对象数组中进行查询搜索
- 在正则表达式中搜索单词
- 正则表达式搜索一个空格,后跟一个字符
- 在字符串列表中搜索任何出现的单词,如果单词的第一个字符匹配,则高亮匹配单词.Javascript正则表达式
- 搜索日历事件的Javascript正则表达式
- 如何使用 JavaScript 正则表达式搜索除一个实例之外的所有内容
- javascript中通配符搜索的正则表达式
- Javascript正则表达式,用于验证接收到的MySQL全文搜索的搜索字符串
- 用于在列表中进行多重搜索的正则表达式,用逗号分隔
- Javascript:通配符正则表达式搜索
- 在搜索表单中,替换空格或仅使用正则表达式的隐词和数字
- 正则表达式搜索短语,在短语后返回“n”个字符
- 搜索/将自定义标记替换为 javascript 正则表达式
- JavaScript正则表达式搜索每个单词和后续单词的开头
- 正则表达式在字符串中搜索两个字符串之间的内容
- Javascript/jQuery使用正则表达式搜索“分钟:秒”时间
- 如何确定搜索字符串是否被较大字符串中的锚标记包装 - javascript 正则表达式
- 搜索验证正则表达式在 JavaScript 中不起作用
- Javascript:字符串搜索正则表达式,从字符串的末尾开始
- 我如何搜索正则表达式javascript随机