首页 教程 API文档

数据判断

2015-09-22 16:00:01

属性


复杂程度 极低
使用频率
成员类型 静态模块

描述


Std.is模块负责判断一个值是否为一个指定类型的值,这个类型的默认范围有以下几类:

类型 描述
Number 判断是否为数字,或者数字字符串
String 判断类型是否为字符串
Function 判断类型是否为函数
Object 判断类型是否为Object
PlainObject 判断是否为纯对象
Array 判断是否为一个数组
Empty 判断是否为空,参考isEmpty
NonEmpty 判断是否非空
Element 判断是否为DOM元素
Widget 判断是否为一个Std.ui的widget实例对象
Layout 判断是否为一个Std.ui的layout实例对象

同时,如果在执行Std.is方法的时候,传递的两个值是相同的,Std.is方法会返回true,如果传递的参数第一个是正则表达式,第二个是字符串,如何这个字符串匹配这个正则表达式,那么会返回true

如果两个参数都是DOM对象,或者其中一个是Std.dom实例对象,那么Std.is方法会用它们的原始DOM对象进行判断,并且返回一个Boolean值.

当传递的第一个参数为一个字符串的时候,并且不是在上述范围之类,那么Std.is方法会在其自身的静态成员中查找, 如果这个字符串存在于Std.is的静态成员之中,那么Std.is方法将会使用这个静态函数,将参数2作为这个静态函数的参数,执行之后将返回值当作自身的返回值.

当然,如果手动在Std.is下添加一个静态函数,那么Std.is也会使用这个静态函数进行判断,例如


Std.is.fruit = function(name){
    return "almond apple apricot arbutus carambola casaba coconut filbert fig lemon orange".indexOf(name) !== -1
}
        

执行


Std.is("fruit","apple");
        

相当于


Std.is.fruit("apple");
        

成员列表


方法名称 成员类型 描述
::alnum static 判断字符是否为数字,字母,下划线
::blankChar static 判断字符是否空格,tab,换行
::color static 判断字符串是否为颜色值
::ie static 判断浏览器是否IE
::keyword static 判断字符串是否为js关键字
::number static 判断是否数字或者数字字符串
::operatorChar static 判断字符是否为运算符
::singleTag static 判断是否为html单标签名称
::validAlNum static 判断字符串是否只包含数字,字符串和下划线
::DOM static 判断是否为DOM元素或者Std.dom实例对象

语法



Boolean Std.is(RegExp validator,String value);
Boolean Std.is(Object elem,Object elem2);
Boolean Std.is(String type,data);
        

参数


名称 类型 描述
validator RegExp 需要与参数2进行匹配的正则表达式
value String 需要与参数1进行判读的字符串值
elem Object DOM对象,或者Std.dom实例对象
elem2 Object DOM对象,或者Std.dom实例对象
type String 需要进行判断的类型,或者Std.is成员函数名称
data Any 需要进行判断的数据

返回值


如果判断正确,返回true,否则返回false

相关例子


判断一个值是否为非空


//true
Std.is("NonEmpty",[1,2,3,4]);
        

判断一个值的类型是否为Function


//true
Std.is("Function",function(){});
        

判断一个值是否为颜色值


//true
Std.is("color","red");
Std.is("color","#ffffff");
Std.is("color","rgb(11,22,33)");
Std.is("color","rgba(11,22,33,0.5)");
        

判断2个DOM对象是否相同


//true
Std.is(Std.dom("body"),document.body);