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: p> second test: p> 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 P> P>
4 Réponses :
La seconde regex devrait être au lieu de p> dont les marques d'interrogation après avancement des barres obliques signifient que le match est facultatif. p> p>
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
Ceci est vouloir que je veux un problème résolu:
Utilisez ceci: Explication: strong> p>
Si vous voulez le garder court, utilisez une limite de mots notes: p> \ b code>:
^ code> et
$ code> sont implicites, pas besoin de les écrire. Li>
/ code> n'est pas un caractère spécial, pas besoin de s'échapper. Li>
[0-1] code> n'a pas de sens car il n'y a rien entre 0 et 1. Li>
ul> p>
Qu'en est-il de
^ (\ d {4} \ / | (\ d {4} $)) + code>?
motif = "^ (?: 19 \ D {2 / | 20 [0-1] [0-9]) (?: \ / (?: 19 \ D {2 / | 20 [0-1] [0-9])) * " code>
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