# If var is [not] type

检查变量的内容是否为数值, 大写字母或其他.

    if Var is Type
    if Var is not Type

## 参数

Var

  变量名.

Type

  指定以下类型之一:

  类型 | 描述
  --- | ---
  integer | 当 Var 非空且包含不带小数点的纯数值字符串(十进制或十六进制) 时为 true. 允许含有前导和尾随空格和 tab. 字符串可以以加号或减号开始.
  float | 当 Var 非空且包含浮点数; 即含有小数点的纯数值字符串时为 true. 允许含有前导和尾随空格和 tab. 字符串可以以加号, 减号或小数点开始.
  number | 当 Var 包含整数或浮点数(上文描述的每种数字) 时为 true.
  digit | 当 Var 为空或仅包含由 0 到 9 字符组成的数字时为 true. 不允许出现其他字符, 例如后面这些: 空格, tab, 加号, 减号, 小数点, 十六进制数以及 0x 前缀.
  xdigit | 十六进制数: 除了还允许 A 到 F(大写和小写形式) 字符外, 其他与 digit 相同. [v1.0.44.09+]: 允许使用 0x 前缀.
  alpha | 当 Var 为空或仅包含字母时为 true. 如果字符串中含有任何数字, 空格, tab, 标点或其他非字母的字符时则为 false. 例如, 如果 Var 包含一个空格后跟一个字母, 那么它 不会 被看成是 alpha.
  upper | 当 Var 为空或仅包含大写字母时为 true. 如果字符串中含有任何数字, 空格, tab, 标点或其他非大写字母的字符时则为 false.
  lower | 当 Var 为空或仅包含小写字母时为 true. 如果字符串中含有任何数字, 空格, tab, 标点或其他非小写字母的字符时则为 false.
  alnum | 除了还允许 0 到 9 的数字外, 其他与 alpha 相同.
  space | 当 Var 为空或仅包含空白字符时为 true, 其中空白字符包括后面这些字符: 空格(%A_Space%), tab(%A_Tab% 或 `t), 换行符(`n), 回车符(`r), 垂直 tab(`v) 和进纸符(`f).
  time | 当 Var 包含有效的日期时间戳时为 true, 其中日期时间戳可以是 YYYYMMDDHH24MISS 格式的全部或开始部分. 例如, 类似 2004 这样的 4 位字符串被视为有效的. 使用 StrLen() 或 StringLen 可以判断是否存在额外的时间部分. 小于 1601 的年份会被视为无效的, 因为操作系统通常不支持它们. 被视为有效的最大年份为 9999. 可以使用单词 DATE 代替 TIME, 效果相同.

## 备注

"Is" 运算符 不支持用于表达式中.

[AHK_L 42+]: 如果没有使用 StringCaseSense Locale, 那么会忽略系统区域设置.

## 相关

%A_YYYY%, Format(), SetFormat, FileGetTime, IfEqual, if var in/contains MatchList, if var between, StrLen(), IfInString, StringUpper, 区块, Else, StringLen

## 示例

检查 var 是浮点数还是整数, 并检查它是否是有效的时间戳.

    if var is float
        MsgBox, %var% is a floating point number.
    else if var is integer
        MsgBox, %var% is an integer.
    if var is time
        MsgBox, %var% is also a valid date-time.

dftg