Well, you would start with
j.*t.*x
But the `.*` bits would match _anything_. So instead restrict those parts to only match letters:
j[[:alpha:]]*t[[:alpha:]]*x
The `[[:alpha:]]` thing is a POSIX character class that is _roughly_ the same as `[A-Za-z]`, i.e. any alphabetic character.
That's you pattern. Then ask `grep` nicely to only return complete words. You do that with the `-w` option. That would restrict the matches to substrings on each line that are delimited by non-word characters such as spaces, or at the start or end of the line.
Add `-i` if you want to do case-insensitive matching.
If you want only the bits of each line that actually matches the pattern and not the whole line, additionally use `-o`.
You'll end up with
grep -i -o -w 'j[[:alpha:]]*t[[:alpha:]]*x'
Testing:
$ grep -i -o -w 'j[[:alpha:]]*t[[:alpha:]]*x' /usr/share/dict/words
janitrix