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.
unixetc