is/zone

Zone 底座:判断函数


Methods

(static) isAfter(source, compared, config) → {boolean}

「标准」Ux.isAfter

时间比较 <

Parameters:
Name Type Description
source
compared
config
Returns:
Type
boolean

(static) isArray(input) → {boolean}

「标准」Ux.isArray

判断输入的值是否是一个合法的JavaScript中的Array类型。

内部调用underscore,判断输入值是否是一个合法 Array 的函数,在原生的JavaScript中通常使用 Array.prototype.isPrototypeOf 的方式来判断一个输入是否Array,而这个封装包含了特殊值的检测 目前版本看起来走underscore的流程是最靠谱的。

Parameters:
Name Type Description
input any

输入值

Returns:

是数组则返回true,不是则返回false

Type
boolean

(static) isBefore(source, compared, config) → {boolean}

「标准」Ux.isBefore

时间比较 <

Parameters:
Name Type Description
source
compared
config
Returns:
Type
boolean

(static) isBlank(literal) → {boolean|boolean}

##「标准」Ux.isBlank

Parameters:
Name Type Description
literal
Returns:
Type
boolean | boolean

(static) isCn(literal) → {Boolean}

「标准」Ux.isCn

判断当前字符串中是否是合法中文,如果包含了中文则直接返回true,主要用于当前字符串中 是否包含了中文信息,在Zero Ui中使用时,会针对列宽度计算执行中文宽度计算,而开发人员 也可以直接调用该API进行检查。

const item = "你好";
const isCn = Ux.isCn(item);  // 返回 true
Parameters:
Name Type Description
literal String

输入的原始字符串

Returns:

匹配返回true,否则返回false

Type
Boolean

(static) isCollection(input) → {boolean}

「标准」Ux.isCollection

检查输入数据的类型是否一个合法的集合类型,集合类型包括:

  1. Set:ES6中的集合类型。
  2. Array:标准的JavaScript中的数组Array类型。
Parameters:
Name Type Description
input any

传入部分的数据

Returns:
Type
boolean

(static) isCurrency(literal) → {boolean}

「标准」Ux.isCurrency

判断当前字符串是否是合法货币格式,合法的货币格式包含两种:

  1. 基本浮点格式。
  2. 带千分位逗号的货币格式。
const literal = "12.33";
const literal2 = "1,135.65";
const isDecimal = Ux.isCurrency(literal);     // 返回 true
const isDecimal2 = Ux.isCurrency(literal);    // 返回 true
Parameters:
Name Type Description
literal String

输入的原始字符串

Returns:

匹配返回true,否则返回false

Type
boolean

(static) isDateIso(literal) → {Boolean}

##「标准」Ux.isDateIso

Parameters:
Name Type Description
literal
Returns:

匹配返回true,否则返回false

Type
Boolean

(static) isDecimal(literal) → {boolean}

「标准」Ux.isDecimal

判断当前字符串是否是合法浮点数,合法浮点数是带一个小数点的小数。

const literal = "12.33";
const isFloat = Ux.isDecimal(literal);        // 返回 true
Parameters:
Name Type Description
literal String

输入的原始字符串

Returns:

匹配返回true,否则返回false

Type
boolean

(static) isDiff(left, right) → {boolean}

「标准」Ux.isDiff

判断两个对象是否不同,内部使用Immutable.is 判断,等价于 Java 语言中的 equals 方法:

  1. 如果是原始JS数据类型,则直接比对二者是否不同。
  2. 如果是JS中的对象(Array, Object), 则比较二者的内容是否不同。
  3. 如果是自定义的 DataArray, DataObject, 则比较二者内容是否不同。

该比对方法针对内部数据结构以及内容执行真正意义上的比对流程,所以不存在===的引用比对流程,通过比对来判断两者数据内容是否一致。 次方法的比对结果使用频率远高于===的比对。众所周知,JavaScript中的三等号在比较Object/Array时比较的是二者的引用地址是否 一致,而不是数据内容是否相同,而真实场景中通常要针对数据内容进行比对,这个API就是为这个场景而设计的。

Parameters:
Name Type Description
left Object | DataObject | DataArray

比对左值

right Object | DataObject | DataArray

比对右值

Returns:

不同返回 true,相同则返回 false

Type
boolean

(static) isEmpty(input) → {boolean}

「标准」Ux.isEmpty

判断对象是否为空或 undefined,空包括 {},以及[]。

  1. 如果 undefined,则表示为空。
  2. 如果 Object,则判断它是否包含了键,无任何键则为空。
  3. 如果 Array,则判断长度是否为0,为0就表示空。
Parameters:
Name Type Description
input any

输入的数据内容

Returns:

如果为空返回 true,否则返回 false

Type
boolean

(static) isFileName(input) → {Boolean}

「标准」Ux.isFileName

判断当前字符串是否是合法文件名。

Parameters:
Name Type Description
input
Returns:
Type
Boolean

(static) isFunction(input) → {boolean}

「标准」Ux.isFunction

内部调用underscore,判断输入值是否是一个合法的 JavaScript 函数,原生调用为 Function.prototype.isPrototypeOf 的方式来判断。

Parameters:
Name Type Description
input any

传入值

Returns:

是函数返回true,不是函数返回false

Type
boolean

(static) isFunctionName(name) → {Boolean}

「标准」Ux.isFunctionName

判断传入的函数名是否一个 Zero Ui 中的合法函数名,Zero中的三种核心函数名如下:

  1. rx开头:专用的交互专用标准化函数,rx全称:Reactive Execute。
  2. on开头:HTML专用的原生态的专用函数
  3. fn开头:普通函数

其实还有一类函数以 _ 打头,这种函数是内置函数(不公开)。

Parameters:
Name Type Description
name String

传入的函数名

Returns:
Type
Boolean

(static) isMoment(input) → {Boolean}

「标准」Ux.isMoment

Parameters:
Name Type Description
input
Returns:
Type
Boolean

(static) isNotEmpty(input) → {boolean}

「标准」Ux.isNotEmpty

(略)isEmpty函数的逆函数,判断结果和isEmpty相反。

Parameters:
Name Type Description
input any

输入的数据内容

Returns:

如果为空返回 false,否则返回 true

Type
boolean

(static) isNumber(literal) → {boolean}

「标准」Ux.isNumber

判断当前字符串是否是合法整数,只有合法整数才会返回true。

const literal = "1233";
const isNumber = Ux.isNumber(literal);       // 返回 true
Parameters:
Name Type Description
literal String

输入的原始字符串

Returns:

匹配返回true,否则返回false

Type
boolean

(static) isObject(input) → {boolean}

「标准」Ux.isObject

是否合法对象,合法对象的满足条件如下:

  1. 如果是 undefined 则不是合法对象。
  2. 如果是 Object 还会排除 Array。

此处检查有一个和原始检查不同的点在于,检查过程中会排除Array类型,JavaScript中的Array 也是一个合法的Object,排除的目的是程序过程中Array和Object的应用场景往往不同。

Parameters:
Name Type Description
input any

输入值

Returns:

如果是合法对象则为true,否则返回false

Type
boolean

(static) isParent(input, parent, field) → {boolean}

「引擎」Ux.isParent

检查两个节点是否有父子关系,不传入 field 时,直接检查两个核心字段

  1. 标准树专用字段:parent
  2. 非标准树的专用字段:parentId

由于是引擎函数,主键不可使用其他值,只能使用React中的通用主键key,为了兼容前端很多操作,Zero Ui中统一使用key字段 作为元素、记录的唯一主键字段名,某些API可变更主键名,但大部分API(特别是引擎类)都直接使用key作主键。

Parameters:
Name Type Description
input Object

输入节点

parent Object

父节点

field String

固定字段检查

Returns:

如果 input 的 parent 是 parent,那么为 true

Type
boolean

(static) isQr(config) → {boolean}

「引擎」Ux.isQr

判断输入的配置是否合法的带查询的结构,输入的 config 必须是合法的 Object

格式1

{
    "ajax": {
        "magic":{
            "...": "< 合法可解析的查询条件模式 >"
        }
    }
}

格式2

{
    "params": {
         "criteria": {
             "...": "< 合法可解析的查询条件模式 >"
         }
    }
}

该方法比较特殊,必须配合 Zero UI 中的查询引擎执行相关处理,主要用于判断查询参数 所传入的对象必须包含以下路径下的值:

# 新格式,直接使用 ajax.magic
ajax.magic

# 旧格式(最早的查询参数)直接使用 ajax.params.criteria
ajax.params.criteria

该API是为引擎中的查询引擎量身定制的函数,用于检查一个输入参数的配置是否符合查询引擎规范, 该检查在大部分web组件中会检查请求发送的参数格式,使用Adaptor的设计模式进行重新设计,如果 参数格式是 Qr 类型,那么会执行查询引擎的参数语法,如果不是 Qr 类型则直接使用原生数据类型。

Parameters:
Name Type Description
config Object

传入的配置信息

Returns:

如果合法则返回true,否则返回false

Type
boolean

(static) isQrArg(query) → {boolean|*}

「标准」Ux.isQrArg

Parameters:
Name Type Description
query
Returns:
Type
boolean | *

(static) isRange(input, literal) → {boolean}

「标准」Ux.isRange

  1. 范围格式:(min, max) 或 [min, max]。
  2. 符号:( 表示不包含边界,[ 表示包含边界。
Parameters:
Name Type Description
input Number

输入值

literal String

检查的范围

Returns:

如果是合法对象则为true,否则返回false

Type
boolean

(static) isRule(record, ruleConfig) → {Boolean}

「标准」Ux.isRule

1. 基本介绍

检查记录record是否符合ruleConfig中的定义,该定义为前端查询引擎检查,配合解析表达式实现针对 数据中条件值的检查,如果符合规则,则返回true,否则返回false。

2. 规则说明

ruleConfig的数据结构如下:

{
    "field1": "<RULE>",
    "field2": "<RULE>",
    "", true / false
}

其中<RULE>的完整值列表如下:

  1. NIL:该属性必须不为空
  2. NUL:该属性必须为空
  3. GT,<N>:该属性大于某个值
  4. GE,<N>:该属性大于等于某个值
  5. LT,<N>:该属性小于某个值
  6. LE,<N>:该属性小于等于某个值
  7. EQ,<S>:该属性等于某个值
  8. NEQ,<S>:该属性不等于某个值
  9. ST,<S>:以某个字符串开始
  10. ET,<S>:以某个字符串结束
  11. CT,<S>:包含了某个字符串
  12. CF,<S>:不包含某个字符串
Parameters:
Name Type Description
record Object

输入的数据记录

ruleConfig Object

输入的规则定义

Returns:

满足规则返回true,否则返回false

Type
Boolean

(static) isRuleAll(array, ruleConfig) → {Boolean}

「标准」Ux.isRuleAll

(略),针对Array执行每个元素的isRule检查,最后用And连接。

Parameters:
Name Type Description
array Array

输入的数组记录

ruleConfig Object

输入的规则定义

Returns:

全满足则返回true,数据和数据之间用AND

Type
Boolean

(static) isRuleAny(array, ruleConfig) → {Boolean}

「标准」Ux.isRuleAny

(略),针对Array执行每个元素的isRule检查,最后用Or连接。

Parameters:
Name Type Description
array Array

输入的数组记录

ruleConfig Object

输入的规则定义

Returns:

满足一条则返回true,数据和数据之间用Or

Type
Boolean

(static) isSame(left, right) → {boolean}

「标准」Ux.isSame

(略)isDiff函数的逆函数,判断结果和isDiff相反。

Parameters:
Name Type Description
left Object | DataObject | DataArray

比对左值

right Object | DataObject | DataArray

比对右值

Returns:

不同返回 false,相同则返回 true

Type
boolean

(static) isSet(input) → {boolean}

「标准」Ux.isSet

判断输入的值是否是一个合法的Set类型对象。

内部调用underscore,判断输入是否合法的 Set 的函数。

Parameters:
Name Type Description
input any

输入值

Returns:

是Set则返回true,不是则返回false

Type
boolean

(static) isSubset(input, source) → {*|boolean}

「标准」Ux.isSubset

Parameters:
Name Type Description
input
source
Returns:
Type
* | boolean

(static) isTEntity(input) → {boolean|*}

「标准」 Ux.isTEntity

Parameters:
Name Type Description
input
Returns:
Type
boolean | *

(static) isTObject(input) → {boolean}

「标准」 Ux.isTObject

Parameters:
Name Type Description
input
Returns:
Type
boolean

(static) isTimeSame(leftMom, rightMom) → {boolean|*}

「标准」Ux.isTimeSame

Parameters:
Name Type Description
leftMom
rightMom
Returns:
Type
boolean | *

(static) isValid(input) → {boolean}

「标准」Ux.isValid

判断当前值是否可用,可用条件:

  1. undefined 不可用
  2. "" 不可用(空字符串)
  3. null 不可用
Parameters:
Name Type Description
input
Returns:
Type
boolean