The real question is "what are your delimiters, i.e, what character immediately precedes 'J' and succeeds 'n'?". I suspect that the space didn't work because the character was in fact a tab. If you have a POSIX version of grep then the expression would be "[:blank:]John[:blank:]" or more broadly "[^[:alnum:]]John[^[:alnum:]]". If you don't have a POSIX version then it is "[^0-9A-Za-z]John[^0-9A-Za-z]".
Imagineer