Mock生成随机数据常用的类型规则

我们一般在模拟数据时都希望生成一些随机的数据,mock中内置了很多种不同类型的随机数据,我们可以使用它们生成各种类型的随机数据:

Type Method
基本类型boolean, natural, integer, float, character, string, range, date, time, datetime, now
图片 image, dataImage
颜色color
文本paragraph, sentence, word, title, cparagraph, csentence, cword, ctitle
姓名first, last, name, cfirst, clast, cname
网站url, domain, email, ip, tld
地址area, region
编号guid, id

使用:使用时我们只需要把值设置成 @方法名 即可,比如,生成一个随机的 Email:

常用的数据类型

一、生成boolean

@boolean

二、生成数字

1.自然数(>=0整数)

@natural
@natural(min,max)

2.整数

@integer
@integer(min,max)

3.小数

@float
@float(min,max,dmin,dmax)
dmin:小数部分位数最小值
dmax:小数部分位数最大值

4.整数整组

@range(min,max)
@range(min,max,step)
​ step:递增的步长

@range(10)
// => [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
@range(3, 7)
// => [3, 4, 5, 6]
@range(1, 10, 2)
// => [1, 3, 5, 7, 9]
@range(1, 10, 3)
// => [1, 4, 7]

三、生成文本

1.单个字符

@character
@character(‘lower/upper/number/symbol’)
@character(pool)

如果传入了 `'lower'` 或 `'upper'`、`'number'`、`'symbol'`,表示从内置的字符池中选取一个字符:
{
    lower: "abcdefghijklmnopqrstuvwxyz",
    upper: "ABCDEFGHIJKLMNOPQRSTUVWXYZ",
    number: "0123456789",
    symbol: "!@#$%^&*()[]"
}

2.字符串

@string
@string(length)
@string(min,max)

3.英文单词

@word
@word(length)
@word(min,max)

4.英文句子

@sentence
@sentence(len)
@sentence(min,max)

5.英文段落

@paragraph
@paragraph(len)
@paragraph(min,max)

6.中文汉字

@cword
@cword(pool)
@cword(len)
@cword(pool,len)
@cword(min,max)
@cword(pool,min,max)

@cword()
// => "干"
@cword('零一二三四五六七八九十')
// => "六"
@cword(3)
// => "别金提"
@cword('零一二三四五六七八九十', 3)
// => ""七七七""
@cword(5, 7)
// => "设过证全争听"
@cword('零一二三四五六七八九十', 5, 7)
// => "九七七零四"

7.中文句子

@csentence
@csentence(len)
@csentence(min,max)

8.中文段落

@cparagraph
@cparagraph(len)
@cparagraph(min,max)

9.中文标题

@ctitle
@ctitle(len)
@ctitle(min,max)

四、生成名字

1.英文名

@first——名
@last——姓
@name——姓名
@name(middle)
​ middle:是否生成中间名字

@name()
// => "Larry Wilson"
@name(true)
// => "Helen Carol Martinez"

2.中文名

@cfirst——姓
@clast——名
@cname——姓名

五、网站

1.生成一个IP

@ip

2.生成一个Email

@email
@email(domain)
​ domain:指定域名

@email()
// => "x.davis@jackson.edu"
@email('nuysoft.com')
// => "h.pqpneix@nuysoft.com"

3.生成域名

@domain

4.生成URL

@url
@url(protocol,host)
​ protocol:指定协议,例如HTTP
​ host:指定域名

@url()
// => "mid://axmg.bg/bhyq"
@url('http')
// => "http://splap.yu/qxzkyoubp"
@url('http', 'nuysoft.com')
// => "http://nuysoft.com/ewacecjhe"

六、生成时间

1.基本用法

@date
@time
@datetime

2.格式化时间

可以通过 format 参数设置时间的格式

@date(format)
@time(format)
@datetime(format)

FormatDescriptionExample
yyyyA full numeric representation of a year, 4 digits1999 or 2003
yyA two digit representation of a year99 or 03
yA two digit representation of a year99 or 03
MMNumeric representation of a month, with leading zeros01 to 12
MNumeric representation of a month, without leading zeros1 to 12
ddDay of the month, 2 digits with leading zeros01 to 31
dDay of the month without leading zeros1 to 31
HH24-hour format of an hour with leading zeros00 to 23
H24-hour format of an hour without leading zeros0 to 23
hh12-hour format of an hour without leading zeros1 to 12
h12-hour format of an hour with leading zeros01 to 12
mmMinutes, with leading zeros00 to 59
mMinutes, without leading zeros0 to 59
ssSeconds, with leading zeros00 to 59
sSeconds, without leading zeros0 to 59
SSMilliseconds, with leading zeros000 to 999
SMilliseconds, without leading zeros0 to 999
AUppercase Ante meridiem and Post meridiemAM or PM
aLowercase Ante meridiem and Post meridiemam or pm
TMilliseconds, since 1970-1-1 00:00:00 UTC759883437303

七、生成地址

1.生成中国大区

@region

@region()
// => "华北"

2.生成省份

@province

3.生成城市

@city
@city(prefix)
​ prefix:布尔值,是否生成所属的省

@city()
// => "唐山市"
@city(true)
// => "福建省 漳州市"

4.生成县

@county
@county(prefix)
​ prefix:布尔值,是否生成所属省、市

@county()
// => "上杭县"
@county(true)
// => "甘肃省 白银市 会宁县"

八、生成邮政编码

@zip

九、编号

1.身份证

@ID

@id()
// => "420000200710091854"

2.GUID

@guid

@guid()
// => "662C63B4-FD43-66F4-3328-C54E3FF0D56E"

十、生成图片

1.图片URL

@image()
@image( size )
@image( size, background )
@image( size, background, text )
@image( size, background, foreground, text )
@image( size, background, foreground, format, text )
​ size:尺寸,格式为:‘宽x高’
​ background:背景色,格式为:#FFFFFF
​ text:图片上显示的文本
​ foreground:广本颜色
​ format:图片格式,可选值包括:png、gif、jpg。

@image()
// => "http://dummyimage.com/125x125"
@image('200x100')
// => "http://dummyimage.com/200x100"
@image('200x100', '#fb0a2a')
// => "http://dummyimage.com/200x100/fb0a2a"
@image('200x100', '#02adea', 'Hello')
// => "http://dummyimage.com/200x100/02adea&text=Hello"
@image('200x100', '#00405d', '#FFF', 'Mock.js')
// => "http://dummyimage.com/200x100/00405d/FFF&text=Mock.js"
@image('200x100', '#ffcc33', '#FFF', 'png', '!')
// => "http://dummyimage.com/200x100/ffcc33/FFF.png&text=!"

2.Base64图片编码

@dataImage
@dataImage(size)
@dataImage(size,text)

十一、生成颜色

@color
@hex
@rgb
@rgba
@hsl

参照官网实例即可: http://mockjs.com/examples.html

拓展:

       {‘name|3′:’lz’}  此为模板数据格式

        属性名name、  生成规则: 重复属性自3次 ,   属性值:lz

  • ‘name | min-max’: string   通过重复 string 生成一个字符串,重复次数大于等于 min,小于等于 max
  •  ‘name | count’:  string   通过重复 string 生成一个字符串,重复次数等于 count
  • ‘name | min-max’: number   生成一个大于等于 min、小于等于 max 的整数,属性值 number 只是用来确定类型。
  • ‘name | +1’: number   属性值自动加 1,初始值为 number
  • ‘name | min-max.dmin-dmax’: number   生成一个浮点数,整数部分大于等于 min、小于等于 max,小数部分保留 dmin 到 dmax 位。
  • ‘name | 1’: boolean   随机生成一个布尔值,值为 true 的概率是 1/2,值为 false 的概率同样是 1/2
  • 属性值是对象:var obj={‘host’:’www.baidu’,’port’:’12345′,’node’:’selector’}
    • ‘name | count’: object  从属性值 object 中随机选取 count个属性。
    • ‘name | min-max’: object  从属性值 object 中随机选取 min 到 max 个属性
  • 属性值是数组:var array=[‘momo’,’yanzi’,’ziwei’]
    • ‘name|1’: array   从属性值 array 中随机选取 1 个元素,作为最终值
    • ‘name|+1’: array   从属性值 array 中顺序选取 1 个元素,作为最终值。
    • ‘name|count’: array   通过重复属性值 array 生成一个新数组,重复次数为 count。
    • ‘name|min-max’: array   通过重复属性值 array 生成一个新数组,重复次数大于等于 min,小于等于 max

 

发表评论

电子邮件地址不会被公开。 必填项已用*标注