javascript - 正则表达式将国家列表转换为正则表达式搜索

标签 javascript regex

我想做的事情: 我正在使用 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/

相关文章:

javascript - 将对象传递给 for 循环

javascript - 如何偏移 D3 节点中的文本

javascript - (Javascript) 正则表达式特定字符但不包括

JavaScript 正则表达式空白字符

用于带连字符的单词的 Python 正则表达式

javascript - .match() 和正则表达式的意外输出

javascript - 读取组件文件 Angular 中的响应 header

javascript - 为什么要调用这个函数?

regex - 将文本文件中的匹配行组合在一起

javascript - *整个*文档中某个元素之后的下一个元素