Условное отображение с помощью JavaScript Regex
Мне нужно сопоставить строку, такую как эта:
'if Country equals "United States" then Show'
Я работаю с модулем Webforms for Marketers в Sitecore. Sitecore - это CMS на основе .NET. Модули Webforms for Marketers - это модуль, который предоставляет не-разработчикам графический интерфейс для разработки форм с текстовыми полями, раскрывающимися списками, флажками и т. Д. У меня есть требования, чтобы отображать только определенные поля в форме, если пользователь выбрал определенное вариант в предыдущем поле. Например: показывать раскрывающийся список «Состояния» можно только в том случае, если пользователь выбрал «Соединенные Штаты». из раскрывающегося списка Страна. Проблема состоит в том, что модуль WFFM не поддерживает условную визуализацию полей, поэтому я пытаюсь реализовать ее самостоятельно с помощью JavaScript. Моя идея заключается в следующем:
I'll build out the form in the module with all of the possible fields When the page loads, I'll use JavaScript to hide fields that depend on the value of previous fields When a user interacts with a field, I'll run some JavaScript to check the value of the field and determine whether or not I should show one or more of the fields that I hid on page load.Я в основном пишу переводчик дляif
заявление; Я даю маркетологам способ «программировать»; форма.Country
это название выпадающего списка на моей странице.equals
это условие."United States"
является одним из значений в раскрывающемся списке. Если пользователь выбираетUnited States
в раскрывающемся списке,then
Show
раскрывающийся список Штаты.
Таким образом, входные данные для теста регулярного выражения всегда будут иметь следующий формат:
always starts with the keywordif
followed by 1 or more white-spaces
followed by any number of digits, and/or letters and/or white-spaces
The name of controls can contain more than one word with spaces and even numbers
For example: First Name, or, Address Line 1
followed by 1 or more white-spaces
followed by the keyword equals
followed by 1 or more white-spaces
followed by 1 double-quote
followed by any number of digits, and/or letters and/or white-spaces
The value of the control can contain more than one word with spaces and even numbers
followed by 1 double-quote
followed by 1 or more white-spaces
followed by the keyword then
followed by either the keyword Show
or the keyword 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}.*$/;
Любая помощь, которую вы можете оказать, будет принята с благодарностью!