Да почему же? Словлю. Вот indexOfом не словлю.
Если по вашей схеме (массив - IndexOf) - то любая точка или символ в слове рушат сразу всю логику.

Код AS3:
var arr:Array = ['слово1', 'слово2'];
var str:String = 'Эй, Юзер, да иди ты на с.лово1!!!111';
trace(str.indexOf(arr[0])); // profit!
Убирать все лишнее из строки? Опять же регулярка. А зачем не использовать indexOf, если я все могу запихнуть в регулярку? Всё не словишь, я не спорю. Но с indexOf словить то, что можно, грамотно орудуя с регуляркой, просто невозможно.