Validando teléfonos en javascript

Quizá lo que menos necesita javascript es otra forma de validar telefonos. Sin embargo, a mi eso de las expresiones regulares no se me da muy bien, por lo que cuando necesité validar un número telefónico decidí hacerlo a mi manera:

//num es el campo de texto
//val es el valor a validar
var tmpVal = val.replace(/\d/g, "#");
            //allow for
            /*
                1(123)123-1234
                1-123-123-1234
                1123-123-1234
                1(123)1231234
                11231231234
            */
            if(tmpVal != "#(###)###-####" && tmpVal != '#-###-###-####' && tmpVal != '#(###)#######' && tmpVal != '###########' && tmpVal != '####-###-####' && tmpVal != '#(###)-###-####'){
                alert('Please use the format (123)123-1234 for your phone number.');
                num.focus();
                return false;
            }

Usamos solo una expresión regular la cual es muy sencilla. Ahora me falta hacer algo de benchmarking para determinar si este método es bueno desde un punto de vista optimizador.

Happy Coding!