布尔类型

:boolean >= 1.0.0

返回一个布尔值,true 或者 false。

Such.as(":boolean"); // true|false
1

:bool >= 1.0.0

:bool 类型是 :boolean 的简写别名。别名通过 Suchjs 提供的 api Such.alias 来定义,比如Such.alias("bool", "boolean")

Such.as(":bool"); // true|false
1

数字类型

:integer >= 1.0.0

返回一个整数值。

Such.as(":integer:[100,200]"); // 125
1

:integer 类型继承自 :number 类型,它由 Suchjs 提供的 api Such.define 来定义,定义的方式形如,Such.define("integer", "number", "%d"),相当于在 number 类型的基础上固定了格式化属性参数。

:int >= 1.0.0

:int 类型是 :integer 的简写别名。

Such.as(":int:[100,200]"); // 125
1

:percent >= 1.0.0

返回一个不带小数点的百分值,它的定义方式为 Such.define('percent', 'number', '[1,100]:%d%'),表示数字的范围在 1 到 100,同时格式化为整数后加 % 符号的形式。

Such.as(":percent"); // '72%'
1

字符串类型

:alphaNumericDash

返回一个由阿拉伯数字、英文字母和下划线组成的字符串,它的定义方式为 Such.define('alphaNumericDash', 'string', '[48-57,97-122,65-90,95]'),相当于在 string 字符串类型的基础上限制了 unicode 的码点范围数字、小写字母、大写字母、下划线_,它等价于正则表达式的 \w 字符集。

Such.as(":alphaNumericDash"); // 'A9dkI_1'
1

:alphaNumeric >= 2.1.1

返回一个由字母、阿拉伯数字组成的字符串。

Such.as(":alphaNumeric"); // '2aD3z'
1

:alpha >= 2.1.1

返回一个由英文字母组成的字符串。

Such.as(":alpha"); // 'ApkDi'
1

:numeric >= 2.1.1

返回一个由阿拉伯数字组成的字符串。

Such.as(":numeric"); // '39011'
1

:uppercase >= 1.0.0

返回一个大写字母字符串,它的定义方式为 Such.define('uppercase', 'string', '[65,90]'),相当于在 string 字符串类型的基础上限制了 unicode 的码点范围为 65 到 90,也即大写字母。

Such.as(":uppercase"); // 'IGSDLD'
1

:lowercase >= 1.0.0

返回一个小写字母字符串,它的定义方式为 Such.define('lowercase', 'string', '[97,122]'),相当于在 string 字符串类型的基础上限制了 unicode 的码点范围为 97 到 122,也即小写字母。

Such.as(":lowercase"); // 'augdkoa'
1

网络类型

:url >= 1.0.0

返回一个 url 地址,它继承自 :regexp,在它的基础上固定了匹配的正则表达式。

Such.as(":url");
// 输出类似:'https://x93m.cn/AD.htm?mn_u=kji&7__b_=%EA%BA#_===_v__'
// 如果想要控制精确的 url 值,可以增加针对分组的精确配置参数
// 更多的命名分组,可以查看extends/recommend.ts里 url 类型的定义
Such.as(':url:#[protocol="https",tld="com"]');
1
2
3
4
5

:email >= 1.0.0

返回一个邮件地址,它同样继承自 :regexp

Such.as(":email"); // 生成类似:'3yh_meqy@o6tw1.com'
Such.as(':email:#[domain="gmail.com"]'); // 生成类似: `7z4@gmail.com`
1
2

:protocol >= 2.1.1

返回一个协议头,如 https ftp等。

Such.as(":protocol"); // 生成类似: "telnet"
1

:tld >= 2.1.1

返回一个顶级域名地址,如 .com .net等。

Such.as(":tld"); // 生成类似: ".org"
1

:domain >= 2.1.1

返回一个域名地址,支持配置 tld 或者 domainLabel 来生成特定的顶级域或者域名标签。

Such.as(":doamin"); // 生成类似: "a2j.org"
Such.as(":doamin#[tld='.com']"); // 生成类似: "3cf.com" "ku2l.com"
Such.as(":domain#[domainLabel='google']"); // 生成类似: "google.com" "google.net"
1
2
3

:ipv4 >= 2.1.1

返回一个v4版本的ip地址,如 255.255.230.2 120.53.2.8等,它支持三个配置,min 指定ip的最小值,max 指定ip的最大值,type 指定是 ABCDE 哪类地址,它可以和 minmax 结合使用。

Such.as(":ipv4"); // 生成类似: "124.25.30.111"
Such.as(":ipv4#[min='10.120.2.5',max='10.120.2.7']"); // 生成类似 "10.120.2.5" "10.120.2.6" "10.120.2.7"
Such.as(":ipv4#[type='A']"); // 生成类似: "127.2.2.1" 等
Such.as(":ipv4#[type='A',max='127.0.0.0']"); // 生成类似: "11.252.10.11"等
1
2
3
4

:ipv6 >= 2.1.1

返回一个v6版本的ip地址,它支持一个参数,compress 为0到1之间的值,指定可能压缩的程度,0表示完全不压缩,1表示完全压缩。

Such.as(":ipv6"); // 生成类似: "abcd:ef01:2345:6789:abcd:ef01:2345:6789"
Such.as(":ipv6#[compress=0.5]"); // 生成类似: "abcd::ef01:0:0:3cf" 
1
2

:ip >= 2.1.1

返回一个ip地址,它可以指定一个 v6 参数,表示为ipv6地址,否则为ipv4,对应的其它参数可见上面的ipv4及ipv6配置。

Such.as(":ip"); // 生成类似: "192.10.25.37"
Such.as(":ip#[v6]"); // 生成类似: "abcd:ef01:2345:6789:abcd:ef01:2345:6789" 
1
2

颜色类型

:color$hex >= 1.0.0

返回一个16进制的颜色值,支持两个参数配置,lowercase,为true时生成的颜色值为小写,否则为大写。argb,为true时,返回8位的argb格式颜色值,否则为rgb格式的6位颜色值。

Such.as(":color$hex"); // 生成类似:'#B22AB0'
Such.as(':color$hex:#[lowcase=true,argb=true]'); // 生成类似: `#92131a73`
1
2

:color$rgb >= 1.0.0

返回一个rgb颜色值。

Such.as(":color$rgb"); // 生成类似:'rgb(255,0,122)'
1

:color$rgba >= 1.0.0

返回一个rgba颜色值。

Such.as(":color$rgba"); // 生成类似:'rgba(255,0,122,0.25)'
1

:color$hsl >= 1.0.0

返回一个hsl颜色值。

Such.as(":color$hsl"); // 生成类似:'hsl(240,30%,60%)'
1

:color$hsla >= 1.0.0

返回一个hsla颜色值。

Such.as(":color$hsla"); // 生成类似:'hsl(240,30%,60%,0.55)'
1

因为 Suchjs 本身具备较好的扩展性,所以内置类型的嵌入主要以常用的一些类型为主,后续可能会继续加入更多类型,更多特定的类型请通过 API 以配置文件的方式,借助Such.config来实现。