How do I know which Pokemon I have caught?

Yes.
If you've caught the wild Pokemon you are battling a small Pokeball icon will appear next to the HP bar, as you can see below:

enter image description here


Yes, there will be a Pokéball by their name/HP bar while you are in a battle with a wild Pokémon if it is a Pokémon that you have caught before. If you haven't caught that species, there won't be a Pokéball.

As of Gen 7, you are also able to tell which Pokémon you've seen before during Pokémon battles and wild encounters, as mentioned in @Joe's answer.


In addition to the pokéball, you'll also be able to tell what pokémon you've registered to your pokédex - even during trainer battles - by the fact that you get a report as to which of your attacking moves are effective/ineffective/highly effective. It only appears on moves that deal direct damage (not on status effect moves), but it only appears if they've been registered.

Of course, this distinguishes between registered to the pokédex and caught, but most of the time that is the same thing, at least the way I play, and of course if you have caught it, it definitely should be registered (so if there are no effective/ineffective notes, you can be sure you didn't catch it).