Expressão regular para limitar o número de caracteres a 10


189

Estou tentando escrever uma expressão regular que permita apenas letras minúsculas e até 10 caracteres. O que eu tenho até agora é assim:

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

Isso não funciona ou compila. Eu tinha uma que funcionava, que apenas permitia letras minúsculas, que era esta:

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

Mas preciso limitar o número de caracteres para 10.


4
O {} e o + fazem a mesma coisa (contando), portanto são redundantes, daí o erro.
PhiLho

1
Você deve soltar o '+' de / ^ [az] {0,10} + $ /. Deveria ser / ^ [az] {0,10} $ /
SO User

1
Observe que o padrão é ^[a-z]{0,10}+$compilado em algumas linguagens e algumas das mais notáveis ​​são Java, Perl (5.10+), PHP, Ruby (1.9+). Veja esta página para mais detalhes.
Jerry

Veja também solução universal via lookahead: Restringindo o comprimento dos caracteres na expressão regular
Vadzim 30/03

Respostas:


356

Você pode usar chaves para controlar o número de ocorrências. Por exemplo, isso significa 0 a 10:

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

As opções são:

  • {3} Exatamente 3 ocorrências;
  • {6,} Pelo menos 6 ocorrências;
  • {2,5} 2 a 5 ocorrências.

Veja a referência da expressão regular .

Sua expressão teve um + após a chave de fechamento, daí o erro.


No Chrome Dev Tools com brasa Eu tive que omitir o início ^de jogo propriedade somente pedidos com um nome como 1234ou 5678, e eu tive que incluem o sinal $
Devin G Rhode

11

/^[a-z]{0,10}$/Deveria trabalhar. /^[a-z]{1,10}$/se você quiser combinar pelo menos um caractere, como /^[a-z]+$/faz.


9

Pode ser benéfico adicionar correspondência gananciosa ao final da string, para que você possa aceitar strings> 10 e o regex retornará apenas até os 10 primeiros caracteres. /^[a-z0-9]{0,10}$?/


8

Depende muito do programa que você está usando. Programas diferentes ( Emacs , vi , sed e Perl ) usam expressões regulares ligeiramente diferentes. Nesse caso, eu diria que no primeiro padrão, o último "+" deve ser removido.


7
grep '^[0-9]\{1,16\}' | wc -l

Dá as contagens com contagem exata de correspondências com limite

Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.