我有以下代码,其中我正在尝试搜索特殊字符&字符串的长度。如果条件失败,则应将错误注释写入主机。我正在使用Powershell 2.0。代码检查字符串长度,但无法检查任何特殊字符。请帮忙。
$chk=$user_logon.Output_Value
if($chk.length -gt 64 -or $chk -notmatch '[^a-zA-Z0-9]')
{
write-host "Error - The Value ""$chk"" is greater than 64 bits or it contains a special character" -BackgroundColor "White" -ForegroundColor "Red";
}
我也试过了 -
if($chk.length -gt 64 -or $chk -notmatch "^[a-zA-Z0-9\s]+$")
已经奏效了。但我希望有条件检查所有特殊字符除了下划线“_”,它可以是$ chk的一部分。
感谢。
答案 0 :(得分:1)
您需要将$chk -notmatch '[^a-zA-Z0-9]'
替换为$chk -match '[^a-zA-Z0-9]'