J'ai cette expression:
$regex_phone = '/^(?:1(?:[. -])?)?(?:\((?=\d{3}\)))?([2-9]\d{2})'
.'(?:(?<=\(\d{3})\))? ?(?:(?<=\d{3})[.-])?([2-9]\d{2})'
.'[. -]?(\d{4})(?: (?i:ext)\.? ?(\d{1,5}))?$/';
if(!preg_match($regex_phone, $data['phone'])){
$error[] = "Please enter a valid phone number.";
}else{
$data['phone'] = preg_replace($regex_phone, '($1) $2-$3 ext.$4', $data['phone']);
}
Cela prendra un numéro de téléphone tels que: 803-888-8888, poste 2, ainsi que 803-888-8888
formats numériques d'abord comme: (803) 888-8888 EXT.2 - l'effet recherché
formats numériques comme deuxième: (803) 888-8888 ext. - extension vide
Comment puis-je le régler de sorte que si $ 4 est vide, cela ext. ne s'affichera pas?
Merci beaucoup pour toute aide que vous pouvez offrir. J'espère que c'était clair.
Ne pense même pas à obtenir une variable preg_match. Travaillé comme un charme. J'ai modifié un peu pour convenir à mon style de codage, mais le isset() et le $ m étaient ce dont j'avais besoin. Merci rbo – bradenkeith