【问题标题】:Powershell - Verify If a indexof is emptyPowershell - 验证 indexof 是否为空
【发布时间】:2022-01-14 12:08:55
【问题描述】:
if (($signmail.IndexOf('@')) -ne $null)
   {
   $signname = $signmail.Remove($signmail.IndexOf('@'))
   }
Else{
   $signname = $signmail
   }

嗨,基本上,我会尝试查看用户是否完整输入了他的邮件地址,或者只是第一部分。我这里试问如果邮件地址中@后面的值不为空,将其擦除并放入新变量中。如果不是,则该变量直接将其名称赋予另一个变量。但它不起作用。我总是收到 StartIndex 不能低于 0 错误。

有人想办法让这段代码适用于那部分吗?

谢谢

【问题讨论】:

    标签: powershell null indexof


    【解决方案1】:

    来自the String.IndexOf() documentation

    报告此实例中第一次出现指定 Unicode 字符或字符串的从零开始的索引。 如果在此实例中找不到字符或字符串,则该方法返回 -1。

    因此,您需要测试返回值是否为 0 或更大:

    if ($signmail.IndexOf('@') -ge 0) {
        $signname = $signmail.Remove($signmail.IndexOf('@'))
    }
    else {
        $signname = $signmail
    }
    

    【讨论】:

    • 谢谢,辛苦了。
    • @Black_n_White 不客气。如果我的回答解决了您的问题,请点击左侧的复选标记将其标记为“已接受”。 my answer to your previous question 也是如此 :)
    猜你喜欢
    • 2021-09-22
    • 2021-02-02
    • 1970-01-01
    • 2020-10-23
    • 2019-10-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多