A couple things on my mind about this code... 

1. Here's an example to illustrate the massive difference between caching a regexp and expecting it to be compiled _everytime_: http://jsperf.com/cached-regex-vs-compile-always
2. I can't find any tests that support this regexp—I went looking because it doesn't match the most common form: 999-999-9999. I think an extensive set of phone number "formats" should be tested against this expression (at very least for documentation)