2012-01-18 487 views
13

Sería genial si alguien pudiera ayudarme con un Regex para obtener los números de teléfono. Las siguientes son las condiciones:C# Regex para validar el número de teléfono

  • Si + está presente, entonces debería ser el primer carácter
  • caracteres permitidos son los números() Espacio - y.
  • mínimo de 6 y un máximo de 12 números de
  • (,) y el espacio pueden venir en cualquier lugar de la cadena
  • - no debe ser el primero y el último carácter y no debe aparecer inmediatamente después +, + si está presente .

Éstos son algunos números válidos:

  • +93483227359
  • +1 703 335 65123
  • 001 (703) 332-6261
  • +1703.338.6512
  • + 934-83227359
  • (111)123-4567
  • 111-123-4567

Gracias de antemano

+0

Solo para verificar, ¿está seguro de que quiere "+) -) -) 333 (((, 111" para ser un número de teléfono válido? –

+0

@JonSkeet bien, estoy bastante seguro 'tel: +) -) -) 333 (((,, 111' es un URI de teléfono válido, por lo que se podría argumentar que si es lo suficientemente bueno para RFC 3966, entonces ... :) Me preocupa más que el número mínimo y máximo de dígitos sea Internacionalmente válido –

+0

De hecho, el mío es 12 dígitos después del +, así que si se da en la forma local para un país dado, sería de al menos 13 dígitos. –

Respuesta

20

Inténtalo con:

^\+?(\d[\d-. ]+)?(\([\d-. ]+\))?[\d-. ]+\d$ 

Sin embargo, no se ocupa de contar el número

+0

@PabitraDash Eso es lo que escribí. – hsz

+0

Lo siento, ya eliminé mi comentario. –

Cuestiones relacionadas