Мне нужно регулярное выражение, которое принимает только десятичные числа, до двух десятичных знаков. Я уже пробовал ^\d{1,}(\.\d{2})?$'
, но я не хочу, чтобы он использовал необязательную группу, потому что это позволит пройти 1
. Если вы выберете дополнительную группу, она не позволит передать 1.00
.RegEx для десятичного числа с точностью до двух
мой код:
[double]$bookPrice = read-host "Enter book price "
if($bookPrice -notmatch '^\d{1,}(\.\d{2})?$'){
[console]::beep(500,300)
Write-Host "invalid"
}
Действительно:
1.00
1.12
Invalid:
1
1.000000
Единственное, что я думаю, что будет решать проблему изменения переменной $bookPrice
в строку, но я не хочу тратить время на преобразование его в двойное.