我有下面的代码,其中我试图搜索特殊字符和字符串的长度。如果条件失败,则应向主机写入错误说明。我正在使用 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 的一部分。