正则表达式全字(jQuery DataTables搜索)

时间:2015-04-13 14:35:19

标签: jquery regex datatable

我正在使用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()

1 个答案:

答案 0 :(得分:2)

您应该使用<td>标记作为边界(如果它们是进入正则表达式引擎的字符串的一部分)并且仅使用捕获的组1:

 <td>(Arizona|Virginia)</td>

如果字符串以普通ArizonaWest Virginia形式出现,则可以在字符串的开头^或结尾$处使用匹配的锚:

 ^(Arizona|Virginia)$