All the checks you can do before storing the information in the database, for example a form may have mascara that adds the (xx) xxxx-xxxx, but you make a treatment to remove the other characters that are not number , thus storing only number in a varchar in the database.
Remembering if you want the value to be checked before sending to confirm that you are sending only correct digits, use regular expression to recognize the string something like ([0-9]{2})\s[0-9]{4}-[0-9]{4}
I'm not saying that this regular expression is right, but it's something very close to what you can use, so it will force you to have two numbers in the DDD in parentheses and 8 followed numbers separated by -.
This already guarantees, then a split or tokenizer depending on what you use to separate and remove non-digits, and concatenates everything else as a number and saves it to the database.
When accessing, to display the data in visual form just create a mask again to apply over the restored value. As a database the values need to be correct, the treatments who do and always the program to get the value and demonstrate, at least the best way for you to think is this.