So with all of that taken into account, I ran the 117 million email addresses through the model.And the odds that an incorrect email address will be caught by email validation is …0.00000000000000000000000000000000000000625%I’m afraid I don’t have time to type out the algorithm that totally exists and is indisputably perfect, so you’ll have to take my word for it that this number is not in any way made up.(The flip side is I fail and be told my address isn’t valid when it is! She regrets buying the domain, too, but won’t give it up, just like the guy that’s got I am more likely to mis-type with a letter on the visible keyboard with no shift key required (I apply a weighting to non-modified keys in the model). So from a list of 117 million email addresses I have calculated the frequency of occurrence of each character and for each, noted which keys lie closest on the keyboard, and factored in the likelihood that a mis-stroke will create an invalid email address.We got chatting and it turns out she only lives a few blocks from me and also collects vintage cameras; we’re playing golf next week. I should probably close these brackets and get on with the story.)So what are the odds that any one typo would result in an invalid email address? From all of the tappable keys on a physical keyboard, there are six characters that, while not completely invalid, are only valid in certain cases: \;, and space. (I know hacking Linked In just to make a point about email validation is a bit extreme, but it is important to back up one’s opinions with data).For example, ‘e’ is considered a low risk of invalidating, because all surrounding keys would still result in a valid email address. So although it’s less common than ‘e’, it carries a higher risk of resulting in an invalid email address if missed.I also consider the relative dexterity of the fingers.Daryls tend to poke at the keys with only their index fingers like they’re afraid each key will burn them.
I also built in some general common sense: people with aol email addresses are sloppy typers.
I find it quite common that you want to have constraints on an optional attribute.
One core value of this library is that nothing should be private or inaccessable.
There is no point in trying to work out if an email address is ‘valid’.
A user is far more likely to enter a wrong and valid email address than they are to enter an invalid one.