countryFilterUserInput

countryFilterUserInput

我正在尝试做的是:
我正在使用数据表(http://www.datatables.net/),这是一个用于html表的很棒的jQuery插件。还有一个搜索字段,我可以在其中使用regexp来过滤选项列表,并且效果很好。此搜索:(^ sweden $)|(^ united Kingdom $)过滤列表,仅显示与这两个国家相关的记录。但是我认为用户不必一定要了解正则表达式,因此我试图允许用户输入瑞典,英国,然后在向上键将其转换为隐藏字段内的正则表达式搜索:)
我已经尽力将清单从转到| |并删除了任何意外的双逗号(,,)或多个空格,但是我对于如何捕获每个国家并在输出中加上(^ $)有点困惑。

码:

var countryFilterUserInput = $("#colCountry_filterUser").val();
var countryFilterUserInput = countryFilterUserInput.replace(/[, ]* *,+ *([^((,| )+$)])/g,"|$1").replace(/[, ]*$/,'');
console.log(countryFilterUserInput);




输入:sweden, united kingdom

给我sweden|united kingdom

我正在尝试做到:(^sweden$)|(^united kingdom$)

最佳答案

为什么不简单地替换逗号:

var regex = "(^"+ countryFilterUserInput.replace(/\s*,\s*/g, "$)|(^")+"$)";

09-18 12:08