PowerShell 字符串的几种类型判断

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了PowerShell 字符串的几种类型判断相关的知识,希望对你有一定的参考价值。

Function IsBlank ([string]$InputObject) {
  if (($InputObject -eq "") -or ($InputObject -eq $Null)) {
    Return $True
  } else {
    Return $False
  }
}

Function IsInteger ([string]$InputObject) {
  if ($InputObject -match "^\d+$" ) {
    Return $True
  } else {
    Return $False
  }
}

Function IsFloat ([string]$InputObject) {
  if ($InputObject -match "^\d+\.\d+$") {
    Return $True
  } else {
    Return $False
  }
}

Function IsIPAddr ([string]$InputObject) {
  if ($InputObject -match "^\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}$") {
    Foreach ($Local:str in $InputObject.split(".")) {
      if (([int16]$str -gt 255) -or (($str -match "^0") -and ($str -ne "0"))) {
        #IP任意一段大于255或(以0开头但不等于0)则无效
        Return $False
      }
    }
    if ( [int16]$InputObject.split(".")[0] -eq 0 ) {
      #IP首位等于0则无效
      Return $False
    }
      Return $True
  } else {
    #IP不符合四段3位数值格式则无效
    Return $False
  }
}


Function IsNetmask([string]$InputObject) {
  if ($InputObject -match "^\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}$") {
    #将子网掩码转换为二进制字符串,不足8位的在左侧填0
    $Mask = -join ($InputObject.Split(‘.‘) | ForEach-Object {[System.Convert]::ToString($_,2).PadLeft(8,‘0‘)})
    #判断是否连续1开头,连续0结尾
    if (($Mask -match ‘^1+0+$‘) -and ($Mask.Length -le 32)) {
      Return $True
    } else {
      Return $False
    }
  } else {
    Return $False #不符合IP的四段3位数字格式
  }
}

本文出自 “foolishfish” 博客,请务必保留此出处http://foolishfish.blog.51cto.com/3822001/1741530

以上是关于PowerShell 字符串的几种类型判断的主要内容,如果未能解决你的问题,请参考以下文章

js中判断数据类型的几种实用方法

c#中判断对象为空的几种方式(字符串等)

JavaScript判断对象是否为空对象的几种方法

JS类型判断的几种方式

PHP将一个变量转换成float的几种方法

C++判断,比较类型的几种方法