^
соответствует началу строки (или началу строки, если установлен многострочный флаг).
\b
соответствует границе слова.
\bdo
соответствует словам, начинающимся с «do».
Итак, для вашего примера:
{sentence: new RegExp('\\b'+key,'gi')}
(отмечая, что в строке JavaScript вам нужно избежать обратных косых черт.)
Если вам понадобится захватить матч (ы), чтобы узнать, какое слово (-ы) соответствует шаблону, вы захотите обернуть выражение в круглые скобки и добавить бит в соответствие с остальной частью слова:
new RegExp('(\\b' + key + '\\w*)','gi')
Где \w
- любой символ слова, а *
- ноль или больше. Если вы хотите, чтобы слова, имеющие хотя бы один символ больше, чем key
, используйте +
вместо *
.
Дополнительные сведения см. В многочисленных справочниках регулярных выражений в Интернете, например https://developer.mozilla.org/en/JavaScript/Guide/Regular_Expressions