string is class?-strict? ?-failindexvarname?string
如果string是指定class中的成员就返回1,否则返回0。如果指定了-strict,空字符串就返回0,不指定则返回1。如果指定了-failindex,那么将导致不匹配的索引储存在varname中,如果返回1则varname不会被赋值。列举了以下字符类:
判断字符串是否由字母和数字组成使用alnum:
% string is alnum "abc123"
1
1
判断字符是否是由字母组成使用alpha:
% string is alpha "abc"
1
1
任何ASCII码ascii:
% string is ascii "^%*ajb1723"
1
1
布尔变量boolean:
% string is boolean 1
1
% string is boolean true
1
1
% string is boolean true
1
在tcl8.5.1中使用这个命令,会有一点点问题,如果字符串为t、tr、tru或者f、fa、fal、fals都为真,非常奇怪的现象。
是否是控制符号control:ASCII码中从0到37都会返回1
% string is control "\34"
1
1
任何数字字符digit:
% string is digit "34"
1
1
任何浮点字数double:需要注意可以带符号,但是类如.89和89.都被认为是double
% string is double "11.2"
1
1
1或者false:(很奇怪,f、fa、fal、fals也会返回1)
% string is false 0
1
1
打印字符,除了空格符:
% string is graph "HelloWorld!"
1
% string is graph "Hello World!"
0
1
% string is graph "Hello World!"
0
32位有效整数:(超过32位就返回0)
% string is integer "123231232"
1
1
合法列表结构list:
% string is list "1 32 3"
1
1
小写字母lower:
% string is lower "abd"
1
1
任何打印字符print:与graph区别就是包含了空格符
% string is print "a b c"
1
1
任何标点符号punct:
% string is punct ",:"
1
1
空格符、制表符、换行符、回车、垂直制表符、退格符space:
% string is space "\t "
1
1
是否为真true:(包括1、true、t、tr、tru)
% string is true 1
1
1
任何大写字母upper:
% string is upper "HE"
1
1
长整数wideinteger:
% string is wideinteger "1234567890123456789"
1
% string is integer "1234567890123456789"
0
1
% string is integer "1234567890123456789"
0
任何字母、数字和下划线wordchar:
% string is wordchar "Hi_Hi"
1
1
任何16位进制字符([0-9][A-F][a-f])xdigit:
% string is xdigit "0123456789abcdefABCDEF"
1
1
如果指定了-strict,空字符串就返回0,不指定则返回1。
% string is integer ""
1
% string is integer -strict ""
0
1
% string is integer -strict ""
0
如果指定了-failindex,那么将导致不匹配的索引储存在varname中,如果返回1则varname不会被赋值。在boolean、true和false的情况下,如果返回0,varname将被置为0。
% string is integer -failindex myIndex "1234abc"
0
% puts $myIndex
4
0
% puts $myIndex
4
myIndex中的值为a的索引,因为a是第一个导致返回0的字符。