web-dev-qa-db-fra.com

Expression régulière pour faire correspondre le premier et le dernier caractère

J'essaie d'utiliser l'expression régulière pour vérifier que les premier et dernier caractères d'une chaîne sont des caractères alpha entre a-z.

Je sais que cela correspond au premier caractère:

/^[a-z]/i

Mais comment puis-je également vérifier le dernier caractère?

Cette:

/^[a-z][a-z]$/i

ne marche pas. Et je soupçonne qu'il devrait y avoir quelque chose entre les deux clauses, mais je ne sais pas quoi!

13
Jason

L'expression régulière ci-dessous correspondra aux chaînes qui commencent et se terminent par un caractère alpha.

/^[a-z].*[a-z]$/igm

La chaîne a commence et se termine également par un caractère alpha, non? Ensuite, vous devez utiliser l'expression régulière ci-dessous.

/^[a-z](.*[a-z])?$/igm

DÉMO

Explication:

^             #  Represents beginning of a line.
[a-z]         #  Alphabetic character.
.*            #  Any character 0 or more times.
[a-z]         #  Alphabetic character.
$             #  End of a line.
i             #  Case-insensitive match.
g             #  Global.
m             #  Multiline
25
Avinash Raj

Vous pouvez le faire comme suit pour vérifier le premier et le dernier caractère, puis tout ce qui se trouve entre les deux:

/^[a-z].*[a-z]$/im

[~ # ~] démo [~ # ~]

4
sshashank124