次のような文字列に一致させる必要があります。
'if Country equals "United States" then Show'
SitecoreのWebformsforMarketersモジュールを使用しています。Sitecoreは.NETベースのCMSです。マーケターモジュールのWebフォームは、開発者以外のユーザーがテキストボックス、ドロップダウンリスト、チェックボックスなどを使用してフォームをデザインするためのGUIを提供するモジュールです。ユーザーが特定のフィールドを選択した場合にのみフォームの特定のフィールドを表示する必要があります。前のフィールドのオプション。例:ユーザーが[国]ドロップダウンリストから[米国]を選択した場合にのみ、[州]ドロップダウンリストを表示します。問題は、WFFMモジュールがフィールドの条件付きレンダリングをサポートしていないため、JavaScriptを使用して自分で実装しようとしていることです。私の考えはこれです:
- 可能なすべてのフィールドを使用して、モジュール内のフォームを作成します
- ページが読み込まれると、JavaScriptを使用して、前のフィールドの値に依存するフィールドを非表示にします
- ユーザーがフィールドを操作するとき、JavaScriptを実行してフィールドの値を確認し、ページの読み込み時に非表示にした1つ以上のフィールドを表示する必要があるかどうかを判断します。
私は基本的にif
ステートメントのインタプリタを書いています。私はマーケターにフォームを「プログラム」する方法を提供しています。 Country
私のページのドロップダウンリストの名前です。 equals
条件です。 "United States"
ドロップダウンリストの値の1つです。ユーザーがUnited States
ドロップダウンを選択すると、[状態then
Show
]ドロップダウンリストが表示されます。
したがって、正規表現テストの入力は常に次の形式に従います。
- 常にキーワードで始まる
if
- 1つ以上の空白が続く
- 任意の数の数字、および/または文字および/または空白が続く
- コントロールの名前には、スペースと偶数を含む複数の単語を含めることができます
- 例:名、または、住所行1
- コントロールの名前には、スペースと偶数を含む複数の単語を含めることができます
- 1つ以上の空白が続く
- キーワードが続く
equals
- 1つ以上の空白が続く
- 1つの二重引用符が続きます
- 任意の数の数字、および/または文字および/または空白が続く
- コントロールの値には、スペースと偶数を含む複数の単語を含めることができます
- 1つの二重引用符が続きます
- 1つ以上の空白が続く
- キーワードが続く
then
Show
キーワードまたはキーワードのいずれかが続くHide
私はこれだけうまくいくものを持っていますが、それは私が上にリストした要件のすべてではありません。この行は、コントロール名の後の空白までずっと一致します。
var pattern = /^if\s+(\d*|\w*)\s+.*$/;
しかし、二重引用符で一致させようとすると、機能しません。二重引用符で照合するための構文はよくわかりません。私は次のすべてを試しましたが、うまくいきませんでした:
var pattern = /^if\s+(\d*|\w*)\s+["].*$/;
var pattern = /^if\s+(\d*|\w*)\s+\".*$/;
var pattern = /^if\s+(\d*|\w*)\s+\"{1}.*$/;
あなたが提供できるどんな助けも大いに感謝されるでしょう!