La expresión regular de PHP no funciona correctamente

Así que estoy tratando de validar los números de teléfono con el formato xxx-xxx-xxxx donde x es un dígito. El problema que estoy teniendo es que puedo ingresar más de 4 dígitos para el último grupo de números. ¿Alguien ve lo que estoy haciendo mal? Gracias.

$telNumPattern = '/[0-9]{3}-[0-9]{3}-[0-9]{4}/'; //regular expression to match xxx-xxx-xxxx if(empty($_POST['telNum'])) { $errors['telNum'] = "*Your telephone number can't be empty"; } else if(!preg_match($telNumPattern, $_POST['telNum'])) { $errors['telNum'] = "*Your email must be in the form xxx-xxx-xxxx"; } 

 $telNumPattern = '/^[0-9]{3}-[0-9]{3}-[0-9]{4}$/'; 

Usa anclas para hacer una coincidencia exacta.

Intenta esto está funcionando:

 $telNumPattern = '/^[0-9]{3}-[0-9]{3}-[0-9]{4}$/'; //regular expression to match xxx-xxx-xxxx if(empty($_POST['telNum'])) { $errors['telNum'] = "*Your telephone number can't be empty"; } else if(!preg_match($telNumPattern, $_POST['telNum'])) { $errors['telNum'] = "*Your email must be in the form xxx-xxx-xxxx"; }