De hecho, estoy atascado con PHP Regex porque tengo que probar diferentes tipos de números.
Quiero verificar si los primeros 2 números están en mi matriz, pero es posible que el primer 0 sea reemplazado por números internacionales (+33 para Francia).
No tengo idea de cómo probar mis siguientes tipos diferentes:
+33 (0)6 +33(0)6 +33.6 (+33).6 (+33)6 06 +33 (0)7 +33(0)7 +33.7 (+33).7 (+33)7 07¿Algún consejo para hacer eso? Gracias
EDITAR :
Intenté esto pero no funcionó entre paréntesis:
^ (?:(?:\+|00)33|0) #indicatif \s*[6-7] #first number (from 1 to 9) (?:[\s.-]*\d{2}){4} #End of the phone number $Prueba con:
$pattern = '/^(\+33( ?\(0\)|\.)|\(\+33\)\.?|0)[67][0-9]+$/'; $my_number = "+33.678910"; if(preg_match($pattern, $my_number)) // do something Si el número de dígitos debe ser fijo, puede reemplazar el último + con el número (o un rango de números) que debe seguir al 6 (o 7) inicial.
Por ejemplo:
/^(\+33( ?\(0\)|\.)|\(\+33\)\.?|0)[67][0-9]{5}$/ /^(\+33( ?\(0\)|\.)|\(\+33\)\.?|0)[67][0-9]{5,7}$/La primera expresión regular significa que el 6 (o 7) inicial debe ir seguido exactamente de 5 dígitos. La segunda es de 5 a 7.
Ok, lo descubro, supongo.
Enlace: expresión regular
$pattern = "/(?:(?:(?:\+|00)33|0)|\(\+33\))(\s*|\(0\)|\s*\(0\)|\.)[6-7](?:[\s.-]*\d{2}){4}/";