0
votes

Regex n'accepte que des années comme ce formulaire AAAAYY / AAAAA / AAAA DE 1900 à 2019

J'ai saisi mon formulaire HTML et je tiens à contrôler l'année dactylographiée doit être dans ce formulaire:
aaaa ou aaaaa / aaaa / aaaa / aaaa ... ect
Mon modèle est le suivant:

premier test: xxx

second test: xxx

Je m'attends à un exemple 2018/2019 / 1999 Mais je dois taper 2018 / 2019/1999 / pour le premier test
Mais si je testez avec la seconde: Ce formulaire est accepté mais je ne veux pas être accepté: 20182019/1999


4 commentaires

Qu'en est-il de ^ (\ d {4} \ / | (\ d {4} $)) + ?


motif = "^ (?: 19 \ D {2 / | 20 [0-1] [0-9]) (?: \ / (?: 19 \ D {2 / | 20 [0-1] [0-9])) * "


Regex101.com Vous pouvez tester et créer une regex de douane à l'aide de ce site


^ ((19) \ d {2} \ / | (20) [0-1] [0-9] \ / | (19) \ d {2} $ | (20) [0-1] [0- 9] $) + cela fonctionne pour moi. Merci @bobbey


4 Réponses :


0
votes

La seconde regex devrait être xxx

au lieu de xxx

dont les marques d'interrogation après avancement des barres obliques signifient que le match est facultatif.


2 commentaires

Non, votre regex peut accepter ceci: 1999/1999/20162016 mais je ne le veux pas


Oups, n'a pas vu le deuxième point d'interrogation («Quantifier facultatif»). Réponse modifiée



0
votes

Ceci est vouloir que je veux un problème résolu:
xxx


0 commentaires

0
votes

Utilisez ceci: xxx

Explication: xxx


0 commentaires

1
votes

Si vous voulez le garder court, utilisez une limite de mots \ b : xxx

notes:

  • L'attribut de modèle HTML décrit une chaîne complète, ^ et $ sont implicites, pas besoin de les écrire.
  • / n'est pas un caractère spécial, pas besoin de s'échapper.
  • [0-1] n'a pas de sens car il n'y a rien entre 0 et 1.

0 commentaires