我想做的事情: 我正在使用 datatables ( http://www.datatables.net/ ),这是一个很棒的 html 表 jQuery 插件。还有一个搜索字段,我可以在其中使用正则表达式来过滤选项列表,效果很好。此搜索:(^瑞典$)|(^英国$) 过滤列表并仅显示与这两个国家/地区相关的记录。但我认为用户不必了解正则表达式,因此我尝试允许用户输入瑞典、英国,然后按向上键将其转换为隐藏字段内的正则表达式搜索:) 我已经设法获取从 , 到 | 的列表。它删除了任何意外的双逗号 (,,) 或多个空格,但我对如何捕获每个国家/地区并在输出中在其周围添加 (^$) 感到有点困惑。
代码:
var countryFilterUserInput = $("#colCountry_filterUser").val();
var countryFilterUserInput = countryFilterUserInput.replace(/[, ]* *,+ *([^((,| )+$)])/g,"|$1").replace(/[, ]*$/,'');
console.log(countryFilterUserInput);
输入:瑞典、英国
给我瑞典|英国
我正在努力做到:(^瑞典$)|(^英国$)
最佳答案
您可以只使用非捕获组,这样您就不需要在每个选项中添加开始和结束字符。试试这个:
var countries = 'sweden, united kingdom'.split(/,\s?/);
var regex = new RegExp('^(?:'+ countries.join('|') +')$');
关于javascript - 正则表达式将国家列表转换为正则表达式搜索,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15355623/