web-dev-qa-db-fra.com

Expression régulière pour uniquement les caractères a-z, A-Z

Je ne sais pas comment créer une expression régulière en JavaScript ou jQuery.

Je veux créer une expression régulière qui vérifiera si une chaîne ne contient que des caractères entre a-z et A-Z avec n'importe quel arrangement.

[~ # ~] modifier [~ # ~]

Quand j'ai essayé de faire des regex

/^[a-zA-Z\s]+$/

d'accepter également les espaces blancs. Ça ne marche pas. Quelle pourrait être l'erreur?

Je teste mon expression régulière à Exemple RegExp JavaScript: testeur d'expressions régulières en ligne.

26
Shantanu Gupta
/^[a-zA-Z]*$/

Changer la * à + si vous ne souhaitez pas autoriser les correspondances vides.

Les références:

Classes de caractères ([...]) , Ancres (^ et $) , Répétition (+, *)

Le / ne sont que des délimiteurs, il indique le début et la fin de l'expression régulière. Une utilisation de ceci est maintenant que vous pouvez utiliser modificateurs dessus.

61
NullUserException

En vous basant sur ce que disent les autres réponses, puisque vous ne savez pas du tout comment les faire, voici un exemple de la façon dont vous pouvez le faire en JavaScript:

var charactersOnly = "This contains only characters";
var nonCharacters = "This has _@#*($()*@#$(*@%^_(#@!$ non-characters";

if (charactersOnly.search(/[^a-zA-Z]+/) === -1) {
  alert("Only characters");
}

if (nonCharacters.search(/[^a-zA-Z]+/)) {
  alert("There are non characters.");
}

Le / le début et la fin de l'expression régulière signifient qu'il s'agit d'une expression régulière. La fonction search prend à la fois des chaînes et des expressions rationnelles, donc le / sont nécessaires pour spécifier une expression régulière.

De les documents MDN , la fonction renvoie -1 s'il n'y a pas de correspondance.

Notez également: que cela fonctionne pour uniquement a-z, A-Z. S'il y a des espaces, cela échouera.

23
Hooray Im Helping
/^[a-zA-Z]+$/ 

Du haut de ma tête.

Modifier:

Ou si vous n'aimez pas la syntaxe littérale bizarre, vous pouvez le faire comme ceci

new RegExp("^[a-zA-Z]+$");
9
Ollie Edwards

Avec POSIX Bracket Expressions (non pris en charge par Javascript), cela peut être fait de cette façon:

/[:alpha:]+/

Tout caractère alpha de A à Z ou de a à z.

ou

/^[[:alpha:]]+$/s

pour correspondre strictement avec les espaces.

2
RobertPitt