2017-08-10 6 views
2

私は特定の条件私は、複数%(ワイルドカードを制限することができますどのように複数のワイルドカード検索を制限するにはどうすればよいですか?

  1. を検証する必要があるAPI呼び出し

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

    にパラメータとして渡される「PARAM」と呼ばれるオブジェクトを持っています(%を複数使用すると、エラーが発生します)

  2. この検索で​​は、3文字以上の文字列が必要ですH%(ワイルドカード検索)と%が3以上の文字(例:ABC%またはABC1%)の後でなければなりません最初の出現のインデックスは最後のものと異なる場合)

答えて

0

1を助けてください簡単な方法はチェックされています。 str.indexOf("%") != str.lastIndexOf("%");

2)ただ、最初の亡霊がインデックス3であることを確認するか、そう

をgretear:

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

おかげさまであなたのクイック返信をお待ちしております。ありがとうたくさん – Bijil

+0

私はオブジェクトのパラメータの値を配列に変換すると言っています ["ABC1%、DEF1%、MNO1%、KLM2%"] %が複数回出現していないことを確認するにはどうすればいいですか?この配列では、4つの要素にエラーが発生する%があります) – Bijil

+0

@Bijilよく、1つの要素が1%を超えることはできますか?そうでない場合は、文字列化されたバージョンに%がstr = array.join( '、')であるかどうかを確認することができます – juvian

0

これは最善の解決策ではないかもしれません。

<script src="jquery.min.js"></script> 
<script type="text/javascript"> 

    function isValid(p) { 
     var valid = true; 
     for (var key in p) { 
      if (p.hasOwnProperty(key)) { 
       if ($.isArray(p[key])) { 
        p[key].forEach(function (item) { 
         if (item.match(/\%/g)) { 
          if (item.match(/\%/g).length >= 2) { 
           valid = false; 
           return valid; 
          } 
          else if (item.indexOf("%") > -1) { 
           if (item.length < 4) { 
            valid = false; 
            return valid; 
           } 
          } 
          if (item.lastIndexOf("%") != (item.length - 1)) { 
           valid = false; 
           return valid; 
          } 
         } 
        }); 
       } 
      } 
     } 
     return valid; 
    } 
    $(document).ready(function() { 

     var valid = true; 
     var param = { "prodNbr": ["ABC1%", "DERE%"], "skuNbr": ["MNO1%", "KLM2%"], "prodCd": [], "prodCd1": "1" }; 

     console.log(isValid(param)); //if false conditions not met. 
    }); 

</script> 
+0

ありがとうMatt。私が明日オフィスに着くと、私のアプリケーションでそれを試してみましょう。あなたに出力を更新します:) – Bijil

関連する問題