我需要匹配一个字符串,如这样的:
'if Country equals "United States" then Show'
我与Web表单在Sitecore的营销模块的工作。 Sitecore的是基于CMS一个.NET。 对于营销模块的Web表单是提供了一个图形用户界面的非开发人员使用文本框设计表单,下拉列表,复选框等模块...我有要求,只显示在表单上的某些字段,如果用户选择了一个特定的选项前场。 例如:只显示当用户从国家下拉列表中挑选“美国”国家下拉列表中。 问题是,在WFFM模块不支持领域的条件渲染所以我想用JavaScript来实现它自己。 我的想法是这样的:
- 我会在模块中打造出来的形式与所有可能的领域
- 页面加载时,我将使用JavaScript来隐藏依赖于以前的字段的值字段
- 当用户与磁场相互作用,我会运行一些JavaScript代码来检查该字段的值,并确定我是否应该显示我在页面加载隐藏字段的一个或多个。
我基本上编写解释为if
声明; 我给营销人员的方式来“方案”的形式。 Country
是我的网页上一个下拉列表的名称。 equals
是一个条件。 "United States"
是在下拉列表中的一个值。 如果用户挑选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}.*$/;
您可以提供任何帮助将不胜感激!