Опять мимо
function TstThis(str){
var a=str.replace(/^.*?((?:["']\s*)?this(?:["']\s*)?)/i,'$1')
var b=a.replace(/\s/ig,'');
return!(b.indexOf("'this'")!=-1||b.indexOf('"this"')!=-1)
}
var str='return el == "bla-bla-bla this \"foo"'
alert(TstThis(str))
=> true, а должно быть false, т.к. this указан в кавычках, а реального this нет.
ЗЫ: ты рассматриваешь самый элементарный случай, когда кроме this в кавычках ничего нет. В кавычках может быть любой набор символов, т.к. это простая строка.