Is there a way to know what Pokemon I have caught without looking at my Pokedex? I often find myself battling wild Pokemon that I am not sure if I have caught yet. Is there a way I can check while in battle?
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).