检查具有负十进制值的字符串是否包含特殊字符

检查具有负十进制值的字符串是否包含特殊字符

我需要检查带有负值的字符串是否包含特殊字符。当我输入 -7.!、-7.@、-7.# 时,会发现特殊字符,并发送错误消息,程序也会关闭;但是当我输入有效值(例如 -7.1、-7.5)时,会发送错误消息,程序也会关闭。

我尝试了在链接中找到的命令:
检查字符串是否包含特殊字符

我尝试了这个:

set /p "_vLUF=Valor LUFS: "
echo;!_vLUF!|findstr /r "[%% # & ^ @ $ ~ !]" >nul && echo Invalid Value goto exit

如何使用相同的 findstr 命令来检查字符串,从而避免使用多个 IF,如以下规则所示。

注意:不是在单个 findstr 中,而是使用 findstr 命令。

该字符串只能包含:

- negative values;
- have more than 3 digits;
- numeric characters;
- only 1 decimal value (eg. -9.00, -7.01 are not allowed);
- numbers starting without 0 (eg. -010.0, -09.0 are not allowed);
- be between the values -9.0 to -0.0. (eg. -9.1 and 0.1 are not allowed)

答案1

我修复了你的代码:

set /p "_vLUF=Valor LUFS: "
echo %_vLUF%|findstr /r "[%#&^@$~!]" >nul && echo Invalid Value

相关内容