我正在使用DataTables(http://www.datatables.net/)来生成表格。每行都有一个公司名称,在大多数情况下是州名,省名或国家名称。我使用selected.js生成一个包含所有唯一名称的多选。问题是,当我在搜索“弗吉尼亚”时,我也会得到“西弗吉尼亚”的结果。我只想要“弗吉尼亚”。
对于在多选中选择的每个选项,我将其附加到正则表达式,例如:
\b(Arizona|Virginia)\b
我的数据表包含以下行:
<tr><td>Arizona</td></tr>
<tr><td>Michigan</td></tr>
<tr><td>Virginia</td></tr>
<tr><td>West Virginia</td></tr>
....
我的正则表达式需要什么才能使“弗吉尼亚”只返回“弗吉尼亚”而不是“西弗吉尼亚”?
我正在使用DataTables列搜索(智能搜索关闭)来执行正则表达式:https://datatables.net/reference/api/column().search()
答案 0 :(得分:2)
您应该使用<td>
标记作为边界(如果它们是进入正则表达式引擎的字符串的一部分)并且仅使用捕获的组1:
<td>(Arizona|Virginia)</td>
如果字符串以普通Arizona
或West Virginia
形式出现,则可以在字符串的开头^
或结尾$
处使用匹配的锚:
^(Arizona|Virginia)$