J'essaie de valider une date entrée sous forme de nombres uniquement (par exemple, 09042009 au 09/04/2009).KornShell - Validation de la date dans le script
Le code vérifie maintenant la longueur de la date.
Comment est-ce que je validerais non seulement la longueur de l'entrée de date mais aussi que c'est une date réelle? Quelle serait la syntaxe pour combiner des tests et une expression régulière?
code tel qu'il existe aujourd'hui:
echo "Please enter the date you want (e.g. 07142009)"
level=1;
while [ $level -gt 0 ]; do
read date;
dateleng=`expr length $date`
if [ dateleng -ne 8 ]; then
echo "Bad date, please re-enter";
else level=0;
fi
done
Ceci est en KornShell (ksh) sur un ancien système Unix.
Avez-vous besoin de le faire dans ksh? Il est assez courant de faire des choses comme: si echo "$ TEXT" | perl -pe 'test et sortie 1'; then echo $ TEXT a passé le test; où test est un test utile de la chaîne. –
Je suis sûr qu'il y a plus d'une façon de peler ce chat. Avez-vous un exemple de regex à une ligne dans perl qui le fait? – jjclarkson
Cela dépend ... vous souciez-vous des années bissextiles? – Beta