【问题标题】:How to restrict Multiple wildcard search?如何限制多个通配符搜索?
【发布时间】:2018-01-18 22:38:16
【问题描述】:

我有一个名为“param”的对象,它将在 API 调用中作为参数传递

param = { "prodNbr":["ABC1%", "DEF1%], "skuNbr":["MNO1%","KLM2%"], "prodCd":[]}  

我需要验证某些条件

  1. 如何在这个对象中限制多个%(通配符搜索)(用户只能搜索一个%。如果使用多个%,应该会报错)

    李>
  2. 如果使用 %(通配符搜索)搜索,至少需要三个字符,并且 % 应该在 3 个或更多字符之后(例如:ABC%ABC1%)请帮助

    李>

【问题讨论】:

    标签: javascript jquery angularjs user-interface frontend


    【解决方案1】:

    1) 一个简单的方法是检查第一个幽灵的索引是否与最后一个不同:str.indexOf("%") != str.lastIndexOf("%");

    2) 只需检查第一个幽灵是否在索引 3 或 gretear

    所以:

    if (str.includes("%")) {
        if (str.indexOf("%") != str.lastIndexOf("%") || str.indexOf("%") < 3) {
            alert("error");
        } else {}
    }
    

    【讨论】:

    • 感谢 Juvian 的快速回复。非常感谢
    • 假设我将对象参数的值转换为数组 ["ABC1%,DEF1%, MNO1%,KLM2%" ] 如何检查 % 是否发生多次(意思是,如果一个元素包含 %,该数组中的其他元素不应包含 %。在这种情况下,4 个元素具有 %,这应该会引发错误)
    • @Bijil 好吧,一个元素可以超过 1% 吗?如果没有,您可以使用 str = array.join(',') 检查字符串化版本是否有 %
    • 我也做过同样的事情。将其转换为一个数组并检查 % 是否多次出现,如果存在 1 个 %,它的索引应该大于 2。
    猜你喜欢
    • 1970-01-01
    • 2012-11-08
    • 2020-02-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-11-18
    相关资源
    最近更新 更多