JavaScript profanity match NÃO substitui

Eu estou construindo um filtro de profanação muito básico que eu só quero aplicar emalguns campos na minha aplicação (fullName, userDescription) noservidor.

Alguém tem experiência com um filtro de profanação na produção? Eu só quero que:

'ass hello' <- match
'asster' <- NOT match

Abaixo está meu código atual, mas retorna verdadeiro e falso emem sucessão por algum motivo.

var badWords = [ 'ass', 'whore', 'slut' ]
  , check = new Regexp(badWords.join('|'), 'gi');

function filterString(string) {
  return check.test(string);
}

filterString('ass'); // Returns true / false in succession.

Como posso corrigir esse bug "em sucessão"?

questionAnswers(3)

yourAnswerToTheQuestion