Preciso determinar se uma string contém dois ou mais caracteres alfa consecutivos. Dois ou mais [a-zA-Z]
lado a lado. Exemplo:
"ab" -> valid
"a1" -> invalid
"a b" -> invalid
"a"-> invalid
"a ab" -> valid
"11" -> invalid
Isso deve resolver o problema:
[a-zA-Z]{2,}
{2}
sem a vírgula também deve funcionar, certo?Pessoalmente (como nooby) eu usei:
[0-9][0-9]+.
Mas o do Simon é muito melhor! = D
fonte
[a-zA-Z] {2,} não funciona com dois ou mais caracteres consecutivos idênticos. Para fazer isso, você deve capturar qualquer personagem e, em seguida, repetir a captura assim:
(.) \ 1
O parêntese captura o. que representa qualquer caractere e \ 1 é o resultado da captura - basicamente procurando uma repetição consecutiva daquele caractere. Se você deseja ser específico sobre quais caracteres você deseja encontrar são idênticos consecutivos, basta substituir "qualquer caractere" por uma classe de caractere ...
([a-zA-Z]) \ 1
Encontra uma letra maiúscula ou minúscula repetitiva consecutiva. Corresponde a "abbc123" e não a "abc1223". Para permitir um espaço entre eles (ou seja, um ab), inclua um espaço opcional na regex entre o caractere capturado e a repetição ...
([az] AZ]) \ s? \ 1
fonte
Tenho certeza de que você pode apenas usar [Az] em vez de [a-zA-Z] para obter caracteres alfa minúsculos e maiúsculos http://www.w3schools.com/jsref/jsref_obj_regexp.asp
fonte
[A-z]
corresponde a mais do que letras. Especificamente, ele também corresponde a colchetes, barras invertidas, circunflexos, sublinhados e crostas.Z
ea
, portanto, seriam (erroneamente) incluídos em tal padrão. Eu apoio a recomendação: não use w3schools! Ele contém muitas informações sutilmente ruins como essa.[65-90]
corresponderá a5
-9
(que também inclui6
) e0
!