Вам необходимо использовать \b
вокруг слов, чтобы они могли соответствовать, ТОЛЬКО если они отсутствуют как целые слова.Попробуйте использовать это,
^(?:(?!\b(sample|test)\b).)*$
Кроме того, это хорошая идея сделать группу без захвата, если только вы не собираетесь использовать ее значение.
RegexДемо
Редактировать:
Чтобы сделать его чувствительным к регистру, включите флаг i
, поместив i
сразу после /
врегулярное выражение.JS демо,
var arr = ['this is a test case','this is a testing area','this is a Test area']
arr.forEach(s => console.log(s + " --> " + /^(?:(?!\b(sample|test)\b).)*$/i.test(s)))