Other people may have other opinions, but I think it's generally a bad idea when you automatically "fix" input for a user. Notice how nobody complains about typing suggestions on phones, but there are plenty of complaints about autocomplete. Whenever you "correct" what someone was deliberately trying to do, you'll cause rage.
It reminds me of an experience I had at work. I wrote some tests for a feature that would store some values in a database. However, my tests would always fail. Retrieved data would never match the input data. I eventually decided to trace exactly what was happening in the database and found a stored procedure ran whenever I entered data. It "fixed" my input data. When I told another dev about this they said their "database expert" said it was "good design".
Absolute insanity. Never, ever, "correct" deliberate input. Validate it and tell the user what is wrong. 1) This raises awareness 2) The desired behavior is easier to test.