-
Notifications
You must be signed in to change notification settings - Fork 72
/
Copy pathIs.ahk
50 lines (50 loc) · 978 Bytes
/
Is.ahk
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
Is(Value, Type)
{
local
Result := false
if ({"integer": ""
,"float": ""
,"number": ""
,"digit": ""
,"xdigit": ""
,"alpha": ""
,"upper": ""
,"lower": ""
,"alnum": ""
,"space": ""
,"time": ""}.HasKey(Type))
{
if Value is %Type%
{
Result := true
}
}
else if (Type = "object")
{
Result := IsObject(Value)
}
else
{
try
{
CurrentObject := ObjGetBase(Value)
}
catch
{
CurrentObject := ""
}
while (not Result and CurrentObject != "")
{
try
{
Result := CurrentObject == Type
CurrentObject := ObjGetBase(CurrentObject)
}
catch
{
CurrentObject := ""
}
}
}
return Result
}