Powershell - 验证 indexof 是否为空
Powershell - Verify If a indexof is empty
if (($signmail.IndexOf('@')) -ne $null)
{
$signname = $signmail.Remove($signmail.IndexOf('@'))
}
Else{
$signname = $signmail
}
你好,基本上,我试着看看用户是完整地输入了他的邮件地址,还是只输入了第一部分。我在这里尝试询问如果邮件地址中@之后的值不为空,则将其删除并将其放入新变量中。如果不是,则该变量直接将其名称提供给另一个变量。但它不起作用。我总是收到 StartIndex 不能低于 0 错误。
有人想办法让这段代码适用于那部分吗?
谢谢
来自the String.IndexOf()
documentation:
Reports the zero-based index of the first occurrence of a specified Unicode character or string within this instance. The method returns -1 if the character or string is not found in this instance.
因此您需要测试 return 值是否为 0 或更大:
if ($signmail.IndexOf('@') -ge 0) {
$signname = $signmail.Remove($signmail.IndexOf('@'))
}
else {
$signname = $signmail
}
if (($signmail.IndexOf('@')) -ne $null)
{
$signname = $signmail.Remove($signmail.IndexOf('@'))
}
Else{
$signname = $signmail
}
你好,基本上,我试着看看用户是完整地输入了他的邮件地址,还是只输入了第一部分。我在这里尝试询问如果邮件地址中@之后的值不为空,则将其删除并将其放入新变量中。如果不是,则该变量直接将其名称提供给另一个变量。但它不起作用。我总是收到 StartIndex 不能低于 0 错误。
有人想办法让这段代码适用于那部分吗?
谢谢
来自the String.IndexOf()
documentation:
Reports the zero-based index of the first occurrence of a specified Unicode character or string within this instance. The method returns -1 if the character or string is not found in this instance.
因此您需要测试 return 值是否为 0 或更大:
if ($signmail.IndexOf('@') -ge 0) {
$signname = $signmail.Remove($signmail.IndexOf('@'))
}
else {
$signname = $signmail
}