Expresión regular para limitar el número de caracteres a 10


189

Estoy tratando de escribir una expresión regular que solo permita letras minúsculas y hasta 10 caracteres. Lo que tengo hasta ahora se ve así:

pattern: /^[a-z]{0,10}+$/ 

Esto no funciona ni se compila. Tenía una que funcionaba que solo permitía letras minúsculas, que era esta:

pattern: /^[a-z]+$/ 

Pero necesito limitar el número de caracteres a 10.


44
El {} y el + hacen lo mismo (contando), por lo tanto son redundantes, de ahí el error.
PhiLho

1
Debería soltar el '+' de / ^ [az] {0,10} + $ /. Debería ser / ^ [az] {0,10} $ /
Usuario SO

1
Tenga en cuenta que el patrón se ^[a-z]{0,10}+$compila en algunos lenguajes y algunos de los más notables son Java, Perl (5.10+), PHP, Ruby (1.9+). Vea esta página para más detalles.
Jerry

Ver también solución universal a través de búsqueda anticipada: Restricción de la longitud de los caracteres en la expresión regular
Vadzim

Respuestas:


357

Puede usar llaves para controlar el número de ocurrencias. Por ejemplo, esto significa 0 a 10:

/^[a-z]{0,10}$/

Las opciones son:

  • {3} Exactamente 3 veces;
  • {6,} Al menos 6 veces;
  • {2,5} 2 a 5 apariciones.

Ver la referencia de expresión regular .

Su expresión tenía un + después del cierre de llaves, de ahí el error.


En las herramientas de desarrollo de Chrome con Ember, tuve que omitir el comienzo ^para que las propiedades coincidan SOLO con un nombre como 1234o 5678, y tuve que incluir el signo $
Devin G Rhode

11

/^[a-z]{0,10}$/Deberia trabajar. /^[a-z]{1,10}$/si quieres unir al menos un personaje, como lo /^[a-z]+$/hace.


9

Puede ser beneficioso agregar una coincidencia codiciosa al final de la cadena, por lo que puede aceptar cadenas> de 10 y la expresión regular solo devolverá hasta los primeros 10 caracteres. /^[a-z0-9]{0,10}$?/


8

Depende mucho del programa que esté utilizando. Los diferentes programas ( Emacs , vi , sed y Perl ) usan expresiones regulares ligeramente diferentes. En este caso, diría que en el primer patrón, el último "+" debería eliminarse.


Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.