2

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

4

1 回答 1

3

您需要替换$chk -notmatch '[^a-zA-Z0-9]'$chk -match '[^a-zA-Z0-9]'

于 2013-06-27T20:23:56.097 回答