正则表达式整个单词(jQuery DataTables 搜索)

regex whole word (jQuery DataTables search)

我正在使用数据表 (http://www.datatables.net/) 生成 table。每行都有一个公司名称,在大多数情况下是州、省或国家/地区的名称。我使用 chosen.js 生成一个包含所有唯一名称的多 select。问题是,当我搜索 "Virginia" 时,我也会得到 "West Virginia" 的结果。我只要"Virginia"。

对于在 multi-select 中编辑的每个选项 select,我将其附加到正则表达式中,例如:

\b(Arizona|Virginia)\b

我的数据 table 包含具有以下内容的行:

<tr><td>Arizona</td></tr>
<tr><td>Michigan</td></tr>
<tr><td>Virginia</td></tr>
<tr><td>West Virginia</td></tr>
....

我的正则表达式需要什么才能 "Virginia" returns 只有 "Virginia" 而不是 "West Virginia"?

我正在使用 DataTables 列搜索(智能搜索关闭)来执行正则表达式:https://datatables.net/reference/api/column().search()

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

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

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

 ^(Arizona|Virginia)$