【发布时间】:2009-09-04 13:49:18
【问题描述】:
我正在尝试验证仅以数字形式输入的日期(例如 09042009 为 09/04/2009)。
代码现在检查日期的长度。
如何不仅验证日期条目的长度,而且验证它是否是真实日期?组合测试和正则表达式的语法是什么?
现有代码:
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
这是在旧 Unix 系统上的 KornShell (ksh) 中。
【问题讨论】:
-
需要在ksh中做吗?做这样的事情很常见: if echo "$TEXT" | perl -pe '测试并退出 1';然后 echo $TEXT 通过测试; fi 其中 test 是对字符串的一些有用的测试。
-
我敢肯定,给这只猫剥皮的方法不止一种。你有 perl 中的单行正则表达式的例子吗?
-
这取决于——你关心闰年吗?