Renderizações condicionais com JavaScript Regex

Eu preciso corresponder em uma string como esta:

'if Country equals "United States" then Show'

Estou trabalhando com o Webforms for Marketers Module no Sitecore. O Sitecore é um CMS baseado em .NET. O Webforms for Marketers Modules é um módulo que fornece uma GUI para não desenvolvedores projetar formulários com caixas de texto, listas suspensas, caixas de seleção, etc ... Eu tenho requisitos para mostrar apenas certos campos no formulário se o usuário escolheu um certo opção em um campo anterior. Por exemplo: mostre apenas a lista suspensa Estados se o usuário selecionar "Estados Unidos" na lista suspensa País. O problema é que o módulo WFFM não suporta renderizações condicionais de campos, por isso estou tentando implementá-lo sozinho com JavaScript. Minha ideia é esta:

Eu vou construir o formulário no módulo com todos os campos possíveisQuando a página carregar, usarei o JavaScript para ocultar os campos que dependem do valor dos campos anterioresQuando um usuário interage com um campo, eu vou executar algum JavaScript para verificar o valor do campo e determinar se devo ou não mostrar um ou mais dos campos que eu escondi no carregamento da página.

Eu estou basicamente escrevendo um intérprete para umif declaração; Estou dando aos profissionais de marketing uma maneira de "programar" o formulário.Country é o nome de uma lista suspensa na minha página.equals é uma condição."United States" é um dos valores na lista suspensa. Se o usuário escolherUnited States na lista suspensa,then Show a lista suspensa Estados.

Portanto, a entrada para o teste de regex sempre seguiria este formato:

sempre começa com a palavra-chaveifseguido por 1 ou mais espaços em brancoseguido por qualquer número de dígitos e / ou letras e / ou espaços em brancoO nome dos controles pode conter mais de uma palavra com espaços e números paresPor exemplo: nome próprio ou linha de endereço 1seguido por 1 ou mais espaços em brancoseguido pela palavra-chaveequalsseguido por 1 ou mais espaços em brancoseguido por 1 aspasseguido por qualquer número de dígitos e / ou letras e / ou espaços em brancoO valor do controle pode conter mais de uma palavra com espaços e números paresseguido por 1 aspasseguido por 1 ou mais espaços em brancoseguido pela palavra-chavethenseguido pela palavra-chaveShow ou a palavra-chaveHide

Eu tenho tanto que funciona, mas não é todos os requisitos listados acima. Esta linha corresponde ao espaço em branco após o nome do controle.

var pattern = /^if\s+(\d*|\w*)\s+.*$/;

Mas quando tento corresponder na aspa dupla, não funciona; Eu realmente não sei a sintaxe para correspondência na aspa dupla. Eu tentei todos os seguintes, nenhum trabalho:

var pattern = /^if\s+(\d*|\w*)\s+["].*$/;

var pattern = /^if\s+(\d*|\w*)\s+\".*$/;

var pattern = /^if\s+(\d*|\w*)\s+\"{1}.*$/;

Qualquer ajuda que você puder fornecer será muito apreciada!

questionAnswers(2)

yourAnswerToTheQuestion