2016-10-31 17 views
0

if ... elseステートメントで同様の文字列をチェックする方法は誰でも知っていますか?ifステートメント内の異なる文字列

以下のコードでは、ユーザーがカスタムの制限付きアクセス許可グループに含まれているかどうかを確認して、UIでインジケーターを作成することができます。

if ((myMemberships.indexOf(Sitetitle + " Restricted Readers")>=0) { 
     oInstance.model.dcn[0]._recordSet[i].isMember=false; 

しかし、私はSitetitle + "制限読者" の異なる文字列の組み合わせを格納する配列を書きたいがSiteTitleはリーダー(s)は、SiteTitleRestrictedReader(複数可)を制限など、SiteTitleはリーダー(複数可)を制限します。グループ名を作成するときに管理者がグループ名を間違って入力するのを防ぐことができ、最終的にコードが失敗することがあります。

+0

「if ... else文に配列を書き込む」とはどういう意味ですか? – Carcigenicate

+2

申し訳ありませんが、あなたの質問は本当に不明です...私は単にあなたが達成しようとしているものを解決することができません – freefaller

+0

私はそれらの様々な文字列を格納できるように配列として変数を作成することを考えていた。ちょうどこの問題を解決したい、配列する必要はありません。 – YogaPanda

答えて

2

私はあなたが以下のようなものだろうアレイ機能Array.someMDN.を使用することをお勧め:あなたは(この後に詳細)リファクタリングしたくない場合は

function isRestrictedReader(member){ 
    return /Restricted\s+Readers/.test(member); 
    // I'm using a RegExp, but you could use other methods. 
    // it just has to return a boolean. 
} 

if (myMemberships.some(isRestrictedReader)){ 
    oInstance.model.dcn[0]._recordSet[i].isMember=false; 
} 
1

を、あなたはテストに正規表現を使用することができます文字列が探しているパターンと一致するかどうかを調べます。

var regex = new RegExp(Sitetitle + "\s*restrict(?:ed)?\s*reader[s]?", "i"); 

if ((myMemberships.some(function(text){ return text.match(regex) }) { 
     oInstance.model.dcn[0]._recordSet[i].isMember=false; 

正規表現は、私はちょうどあなたの例に基づいて一緒に投げたが、私は正規表現との誰かより多くの経験をより良いものに考え出すことができると確信していること。

これはコメントの1つでありましたが、これはこの種のデータを処理する非常に安全性の低い方法です。重要なデータのために人間が読める文字列に頼ることはできません。特にタイプミスなどのような場合は、別の方法を試してみてください。しかし何らかの理由であなたができないなら、これで十分です。

+0

ありがとう!これはまさに私が探しているものです!基本的にSharePointはすべてのアクセス許可を処理し、コンテンツを保護します。管理者が誤ったグループ名を作成しても、ユーザーはアクセスを許可できません。このif ... else文は、フロントエンドにテキストを作成して、アクセス権があるかどうかをユーザーに伝えるのに役立ちます。 – YogaPanda

1
if(/resTrict/i.test('resTrICted') !== false) { 


} 
+2

このコードスニペットは質問に答えるかもしれませんが、方法や理由を説明する文脈は提供していません。答えを説明するために1つまたは2つの文を追加することを検討してください。また、コードスニペットの書式設定には、書式設定構文を使用してください。 – brandonscript

関連する問題