【发布时间】:2016-06-01 01:35:57
【问题描述】:
我有一个输入,有人可以按以下模式输入:
属性:值
该模式可能会演变成同一模式的多个实例,但存在一些差异。例如
property:value property2:"value2" property3>"value3" -property4:"value4"
因此,在上面的示例中,每个模式都可以以文字字符 '-' 开头,但并非必须如此,每个模式都可以包含 :>
属性:值属性2
这是我最初使用的正则表达式,我尽力调整它,但最终掉进了几个兔子洞。我试图告诉它匹配到一个特定的字符类,但结果很糟糕。
var findFilters = new RegExp(/-?\w+[:<>]"?[A-Za-z\S\s]+"?/ig)
另外,这是我之后在我的函数中使用的。我正在接受每场比赛并将其作为参数传递给另一个函数。 searchTerm 表示用户可以输入的输入值。
var match;
while(match = findFilters.exec(searchTerm)){
var currentFilter = match[0];
HSAddFilterParameter(currentFilter);
updatedTerm = searchTerm.replace(currentFilter,'');
}
【问题讨论】:
标签: javascript regex