0

我有一个文本框需要接受 MM/dd 格式的日期,有人可以建议我使用正则表达式吗

提前致谢

4

1 回答 1

0

使用一些编程逻辑来验证月份的日期是否正确会更容易。要回答有关如何验证用户输入的 xx/xx 的问题,其中 xx 是 1 位或 2 位数字

在powershell中我会使用类似的东西

$String = "02/24"

if ($String -match "(\d{1,2})/(\d{1,2})") {
    # some code they got it right
    Write-Host "good job"
    # display the matches
    $matches
    } # end if

 # blank line
write-host 
    $months = $(@(1..12) + @(1..9 | %{ $_.ToString("00") } ) ) -join "|"
    $days = $(@(1..31) + @(1..9 | %{ $_.ToString("00") } ) ) -join "|"
    write-host "months: " $months
    write-host "days: " $days

if ($String -match "^($months)/($days)$") {
    # some code they got it right
    Write-Host "Slightly more complex good job"
    # display the matches
    $matches
    } # end if

产量

good job

Name                           Value                                                                                                                                
----                           -----                                                                                                                                
2                              24                                                                                                                                   
1                              02                                                                                                                                   
0                              02/24                                                                                                                                

months:  1|2|3|4|5|6|7|8|9|10|11|12|01|02|03|04|05|06|07|08|09
days:  1|2|3|4|5|6|7|8|9|10|11|12|13|14|15|16|17|18|19|20|21|22|23|24|25|26|27|28|29|30|31|01|02|03|04|05|06|07|08|09
More complex good job
2                              24                                                                                                                                   
1                              02                                                                                                                                   
0                              02/24                                                                                                                                

第一个 if 块快速而肮脏,验证您为每个字段提供了至少 2 位数字。第二个 if 块做了更好的验证,只允许可以用作日期的值。

于 2013-04-29T22:15:37.060 回答