@reasy-team/util

1.0.2 • Public • Published

reasy-util js-standard-style

Reasy Team 数据验证和工具库函数

安装

npm i @reasy-team/util -D

使用

// esm
import {getType} from '@reasy-team/util'

// cmd
const {getType} = require('@reasy-team/util')

API

util

validate

说明

getType(obj)

通过Object.prototype.toString获取值得类型

参数

  • obj(any): 需要处理的值

返回

(string): 返回值对应的构造函数名,例如Object

示例

getType('test') // String
getType([]) // Array

isObject(obj)

是否是Object类型,即getType的值为Object

参数

  • obj(any): 需要处理的值

返回 (boolean): 是返回true,否则返回false

示例

isObject('test') // false
isObject([]) // false
isObject({}) // true

isEmptyObject(obj)

是否为空对象

参数

  • obj(any): 需要处理的值

返回 (boolean): 是返回true,否则返回false

示例

isEmptyObject({}) // true
isEmptyObject([]) // false

isDefined(val)

不为null或者undefined

参数

  • val(any): 需要处理的值

返回 (boolean): 是返回true,否则返回false

示例

isDefined('test') // true
isDefined() // false
isDefined(null) // false

isUndef(val)

valnull或者undefined

参数

  • val(any): 需要处理的值

返回 (boolean): 是返回true,否则返回false

示例

isUndef('test') // false
isUndef() // true
isUndef(null) // true

ipToInt(ip)

将Ip地址转成整数

参数

  • ip(string): 需要处理的值

返回 (number): 返回值对应的构造函数名,例如Object

示例

ipToInt('192.168.168.168') // 3232278696
ipToInt('192.168.0.1') // 3232235521

isSameNet(lanIp, wanIp, lanMask, wanMask)

检测lan口IP和wank口IP是否在同一网段

参数

  • lanIp(string): Lan口IP
  • wanIp(string): Wan口IP
  • lanMask(string): Lan口mask
  • wanMask(string): Wan口mask

返回 (boolean): 是返回true,否则返回false

示例

isSameNet('192.168.3.1', '192.168.3.2', '255.255.255.0', '255.255.255.0') // true
isSameNet('192.168.3.1', '192.168.13.2', '255.255.255.0', '255.255.255.0') // false

deepClone(obj)

对象的深度克隆

参数

  • obj(any): 需要克隆的值,如果参数为非对象或者function,则原样返回

返回 (any): 返回克隆后的对象

示例

deepClone('test') === 'test' // true

let obj = {
  a: 'text'
}
let cloneObj = deepClone(obj) 
cloneObj === obj // fasle
console.log(cloneObj) // {a: 'text'}

debounce(func, seconds, [immediate=false])

创建一个debounced(防抖动)函数,该函数会从上一次被调用后,延迟 wait 毫秒后调用 func 方法。 func只会被调用一次。

参数

  • func(Function): 回调函数
  • seconds(number): 延迟执行毫秒数
  • [immediate=false](boolean): 是否立即执行

返回 (Function): 返回新的debounced(防抖动)函数。

示例

debounce('test') // String
debounce([]) // Array

throttle(func, wait)

创建一个throttle(节流)函数,该函数从上一次调用后,延迟wait毫秒后调用func方法,期间多次调用直接忽略。

参数

  • func(Function): 回调函数
  • seconds(number): 延迟执行毫秒数

返回 (Function): 返回新的throttle(节流)函数。

示例

throttle('test') // String
throttle([]) // Array

encodeText(str)

html文本特殊字符编码,处理如下字符:<>"'&空格

参数

  • str(string): 需要处理的字符串

返回 (string): 转码后的字符串

示例

encodeText('< >"\'&') // &lt;&nbsp;&gt;&quot;&#39;&amp;

decodeText(str)

html文本特殊字符转码成源码。

参数

  • str(string): 需要处理的字符串

返回 (string): 字符串对应的源码字符串

示例

decodeText('&lt;&nbsp;&gt;&quot;&#39;&amp;') // < >"'&

guid()

获取唯一表示GUID

返回 (string): GUID

示例

以下为数据校验相关函数,验证成功默认返回undefined,验证失败返回对应的错误信息

getUtf8Length(str)

获取utf-8编码字节长度

参数

  • str(string): 需要处理的字符串

返回 (number): 字节长度

示例

getUtf8Length('test') // 4
getUtf8Length('中文测试') // 12

required(str)

str为必填项

参数

  • str(string): 需要处理的字符串

返回 (string): 为空返回对应的错误信息,否则返回undefined

示例

required('') // This field is required
required('不为空') // undefined

len(str, [min], [max])

判断给定的字符串str长度(非字节)是否在设定的范围[min, max]内。

注意:如果max<min,则不处理直接返回

参数

  • str(string): 需要处理的字符串
  • [min](number): 最小长度,可不填
  • [max](number): 最大长度,可不填

返回 (string): 范围内返回undefined,否则返回对应的错误信息

示例

len('test') // undefined
len('test', 8,12) // Range: 8 to 12 characters

byteLen(str, [min], [max])

判断给定的字符串str字节长度是否在设定的范围[min, max]内。

注意:如果max<min,则不处理直接返回

参数

  • str(string): 需要处理的字符串
  • [min](number): 最小长度,可不填
  • [max](number): 最大长度,可不填

返回 (string): 范围内返回undefined,否则返回对应的错误信息

示例

byteLen('test' 2,6) // undefined
byteLen('中文好几个字节', 6, 12) // Range: 6 to 12 bytes

num(str, min, max)

判定str为数字字符串,且值大小在设定的范围[min, max]内。

注意:如果max<min,则不处理直接返回

参数

  • str(string): 需要处理的字符串
  • [min](number): 最小长度,可不填
  • [max](number): 最大长度,可不填

返回 (string): 范围内返回undefined,否则返回对应的错误信息

示例

num('test') // String
num([]) // Array

float(str, min, max)

判定str为数字字符串,且值大小在设定的范围[min, max]内。

注意:如果max<min,则不处理直接返回

参数

  • str(string): 需要处理的字符串
  • [min](number): 最小长度,可不填
  • [max](number): 最大长度,可不填

返回 (string): 范围内返回undefined,否则返回对应的错误信息

示例

float('123') // undefined
float('123xx') // Must be float 

even(str, min, max)

判定str为偶数数字字符串,且值大小在设定的范围[min, max]内。

注意:如果max<min,则不处理直接返回

参数

  • str(string): 需要处理的字符串
  • [min](number): 最小长度,可不填
  • [max](number): 最大长度,可不填

返回 (string): 范围内返回undefined,否则返回对应的错误信息

示例

even('8') // undefined
even('9') // Must be even

url(str)

验证url的合法性,不包括协议部分即http://

参数

  • str(string): 需要处理的值

返回 (string): 范围内返回undefined,否则返回对应的错误信息

示例

url('test') // undefined
url('') // Invalid URL

phoneNumber(str)

验证电话号码的合法性

参数

  • str(string): 需要处理的值

返回 (string): 范围内返回undefined,否则返回对应的错误信息

示例

phoneNumber('test') // undefined
phoneNumber('') // Enter a valid phone number

domain(str, min, max)

验证域名的合法性,且字节大小在设定的范围[min, max]内。

注意:如果max<min,则不进行字节大小的处理

参数

  • str(string): 需要处理的值

返回 (string): 范围内返回undefined,否则返回对应的错误信息

示例

domain('192.168.3.6') // undefined
domain('www.baidu.com') // undefined
domain('19213.134.134') // Enter a valid IP address or domain name.

mac(str)

验证mac地址的合法性

参数

  • str(string): 需要处理的值

返回 (string): 范围内返回undefined,否则返回对应的错误信息

示例

mac('00:02:00:00:00:00') // undefined
mac('00:00:00:00:00:00') // The MAC address cannot be 00:00:00:00:00:00.

specialMac(str)

参数

  • str(string): 需要处理的值

返回 (string): 范围内返回undefined,否则返回对应的错误信息

示例

specialMac('0023-00ad-0034') // undefined

ip(str)

验证IP地址的合法性,最高位在1-223之间,且不能是127

参数

  • str(string): 需要处理的值

返回 (string): 范围内返回undefined,否则返回对应的错误信息

示例

ip('192.168.3.1') // undefined
ip('192.255.3.255') // Please enter a valid IP address.

ipNet(str)

验证合法IP,且最后一位不能取0255

参数

  • str(string): 需要处理的值

返回 (string): 范围内返回undefined,否则返回对应的错误信息

示例

ipNet('192.255.3.255') // undefined

privateIP(str)

私有IP验证

A类地址范围:10.0.0.0—10.255.255.255 B类地址范围:172.16.0.0---172.31.255.555 C类地址范围:192.168.0.0---192.168.255.255

参数

  • str(string): 需要处理的值

返回 (string): 范围内返回undefined,否则返回对应的错误信息

示例

privateIP('172.17.242.2') // undefined
privateIP('172.15.242.2') // Enter a valid private IP address

netSegmentCheck(ip, lanIp, mask)

输入IP地址与lanIP是否在同一个网段

参数

  • ip(string): 待验证ip地址
  • lanIp(string): lan口IP
  • mask(string): Lan口mask

返回 (string): 范围内返回undefined,否则返回对应的错误信息

示例

netSegmentCheck('192.168.3.1', '192.168.3.6', '255.255.255.0') // undefined
netSegmentCheck('192.168.13.1', '192.167.3.6', '255.255.0.0') // It must belong to the same network segment as that of the LAN IP address

mask(str)

子网掩码合法性验证,不包括255.255.255.255

参数

  • str(string): 需要处理的值

返回 (string): 范围内返回undefined,否则返回对应的错误信息

示例

mask('255.255.255.254') // undefined
mask('252.255.253.254') // Enter a valid subnet mask

allMask(str)

全子网掩码验证,包括255.255.255.255

参数

  • str(string): 需要处理的值

返回 (string): 范围内返回undefined,否则返回对应的错误信息

示例

allMask('255.255.255.255') // undefined
allMask('252.255.253.254') // Enter a valid subnet mask

email(str)

邮箱合法性验证

参数

  • str(string): 需要处理的值

返回 (string): 范围内返回undefined,否则返回对应的错误信息

示例

email('75598233@qq.com') // undefined

hex(str)

16进制字符合法性验证

参数

  • str(string): 需要处理的值

返回 (string): 范围内返回undefined,否则返回对应的错误信息

示例

hex('0123456789abcdefABCDEF') // undefined
hex('asf') // Only hexadecimal characters are allowed.

chkHalf(str)

是否包含全角字符验证

参数

  • str(string): 需要处理的值

返回 (string): 范围内返回undefined,否则返回对应的错误信息

示例

chkHalf('this is hale测试') // undefined
chkHalf('测试jkdf f') // Full-width characters are not allowed.

ascii(str)

ascii合法性验证

参数

  • atr(string): 需要处理的值

返回 (string): 范围内返回undefined,否则返回对应的错误信息

示例

ascii('fgdg ') // undefined
ascii('電飯鍋fg') // Please enter non-Chinese characters.

noSpaceStartEnd(str)

字符串首尾是否包含空格验证

参数

  • str(string): 需要处理的值

返回 (string): 范围内返回undefined,否则返回对应的错误信息

示例

noSpaceStartEnd('this is no blank') // undefined
noSpaceStartEnd('     this is no blank ') // The first and last characters of the SSID cannot be spaces.

lanMask(str)

子网掩码合法性验证,不包含255.255.255.255255.255.255.254

参数

  • str(string): 需要处理的值

返回 (string): 范围内返回undefined,否则返回对应的错误信息

示例

lanMask('255.255.254.0') // undefined
lanMask('255.255.255.254') // Enter a valid subnet mask

noSpace(str)

是否包含空格合法性验证

参数

  • str(string): 需要处理的值

返回 (string): 范围内返回undefined,否则返回对应的错误信息

示例

noSpace('test') // undefined
noSpace('tes t') // Spaces are disallowed

Versions

Current Tags

  • Version
    Downloads (Last 7 Days)
    • Tag
  • 1.0.2
    0
    • latest

Version History

  • Version
    Downloads (Last 7 Days)
    • Published
  • 1.0.2
    0
  • 1.0.1
    0
  • 1.0.0
    0

Package Sidebar

Install

npm i @reasy-team/util

Weekly Downloads

0

Version

1.0.2

License

ISC

Unpacked Size

87.9 kB

Total Files

12

Last publish

Collaborators

  • walkerchan008
  • moshangxc
  • milo.z
  • reasyteam