2011-04-04 29 views
5

¿Cómo puedo probar si una cadena contiene solo números y espacios usando RegEx?Números y espacios - Regex de teléfono suelto

decir

  1. 021 123 4567 es válida
  2. 0211234567 es válida
  3. 0211 234 567 es válida

Bastante flojo, pero esto cumple con mis requisitos.

Sugerencias?

+0

de números de teléfono del curso se puede expresar como letras y (1-800-flores o lentes de contacto o lo que sea) – ryber

+0

@ryber: Es para usuarios de números de teléfono celular (formato de Nueva Zelanda) – Marko

Respuesta

10

¿Qué tal /^[\d ]+$/? Si necesita comenzar y terminar con un dígito, /^\d[\d ]*\d$/ debería hacerlo.

+0

Eso me falla con cualquier número. Solo estoy probando con "012 323 2313" aquí http://www.regular-expressions.info/javascriptexample.html – Marko

+1

@Marko, no incluya los/'s si está usando ese probador. Simplemente ponga el texto^[\ d] + $ –

+1

@Marko: ¿eliminó el '/' inicial y posterior? Esos son solo delimitadores de expresiones regulares. Prueba la cadena '^ \ d [\ d] * \ d $' y verás que coincide '012 323 2313' bien. – CanSpice

0

Algo así como:

\d*|\s+^[A-Za-z] 
+0

no que permiten cartas también? – Marko

+0

@Marko Puede usar un probador RegEx como este para probarlo. :) http://regexlib.com/RETester.aspx – eandersson

+0

@ Fuji, lo hice (este http://www.regular-expressions.info/javascriptexample.html) y poner "Asdasd" vuelve como exitoso. – Marko

4
  • [0-9] < - esto significa cualquier dígito entre 0 y 9
  • [0-9 ] < - esto significa cualquier dígito entre 0 y 9, o un espacio
  • [0-9 ]{1,} < - esto significa cualquier sola dígito entre 0 y 9, o un espacio, 1 o veces más
  • [0-9 ]{1,9} < - esto significa cualquier dígito entre 0 y 9, o un espacio, de 1 a 9 veces
3

n de dígitos con cualquier número de espacios:

^(\s*\d\s*){11}$ 

aquí n = 11; prueba: here

Cuestiones relacionadas