Je dois déterminer si une chaîne contient deux caractères alpha consécutifs ou plus. Deux ou plus [a-zA-Z]
côte à côte. Exemple:
"ab" -> valid
"a1" -> invalid
"a b" -> invalid
"a"-> invalid
"a ab" -> valid
"11" -> invalid
Réponses:
[a-zA-Z] {2,} ne fonctionne pas pour au moins deux caractères consécutifs identiques. Pour ce faire, vous devez capturer n'importe quel personnage, puis répéter la capture comme ceci:
(.)\1
La parenthèse capture le. qui représente n'importe quel caractère et \ 1 est le résultat de la capture - recherchant essentiellement une répétition consécutive de ce caractère. Si vous souhaitez être précis sur quels caractères que vous souhaitez trouver sont identiques consécutifs, remplacez simplement le "tout caractère" par une classe de caractères ...
([a-zA-Z]) \ 1
Recherche une lettre minuscule ou majuscule répétitive consécutive. Correspond à "abbc123" et non à "abc1223". Pour permettre un espace entre eux (c'est-à-dire un ab), incluez alors un espace facultatif dans l'expression régulière entre le caractère capturé et la répétition ...
([az] AZ]) \ s? \ 1
Je suis presque sûr que vous pouvez simplement utiliser [Az] au lieu de [a-zA-Z] pour obtenir des caractères alpha petits et majuscules http://www.w3schools.com/jsref/jsref_obj_regexp.asp
[A-z]
correspond à plus que des lettres. Plus précisément, il correspond également aux crochets, aux barres obliques inverses, aux carets, aux traits de soulignement et aux barres obliques.
Z
et a
, ainsi seraient (à tort) inclus dans un tel modèle. J'appuie la recommandation: n'utilisez pas w3schools! Il contient beaucoup d'informations subtilement mauvaises comme celle-ci.
[65-90]
correspondra 5
- 9
(qui comprend également 6
) et 0
!
{2}
sans la virgule devrait également fonctionner, non?