mock.js语法规范,使⽤规则mock.js语法规范,使⽤规则
⼀、Mock.js 的语法规范包括两部分:
1. 数据模板定义规范(Data Template Definition,DTD)
2. 数据占位符定义规范(Data Placeholder Definition,DPD)
⼆、数据模板中的每个属性由 3 部分构成:属性名、⽣成规则、属性值:
// 属性名 name
// ⽣成规则 rule
// 属性值 value
'name|rule': value
三、属性名 和 ⽣成规则 之间⽤竖线 | 分隔。
⽣成规则 是可选的。
⽣成规则 有 7 种格式:
‘name|min-max’: value
‘name|count’: value
‘name|min-max.dmin-dmax’: value
‘name|min-max.dcount’: value
‘name|count.dmin-dmax’: value
‘name|count.dcount’: value
‘name|+step’: value
四、@占位符
1.’@cname’ 随机⽣成中⽂
2.’@guid’ 全局唯⼀标识符 如:586C12FA-26ba-4bdA-bDd9-52eD4E6807dF
3.’@name’ 随机⽣成英⽂
4.’@datetime’ 随机⽣成⽇期时间
5.’@natural(1, 800)'随机⽣成1-800的数字
五、⽰例
1. data常⽤结构,字符串和占位符
'data|1-5':[{//data 是数组,随机⽣成数组,length为1-5(含),前⾯的为min,后⾯的为max(下⾯所有规则都符合)//1. 属性值是字符串 String
'string|1-10':'string',//通过重复 string ⽣成⼀个字符串,重复次数⼤于等于 min,⼩于等于 max。
//2. 数据占位符定义规范 DPD
'cname':'@cname',//随机中⽂名称
"guid":"@guid",//全局唯⼀标识符
'name':'@name',//随机英⽂名称
"datetime":"@datetime",//随机⽣成⽇期时间
"num":"@natural(1, 100)",//随机⽣成1-100的数字
}]
⽣成后
data:[
{
string:'stringstring',
cname:'蒋娟',
guid:'586C12FA-26ba-4bdA-bDd9-52eD4E6807dF',
name:'Ronald Johnson',
datetime:'2014-11-10 19:54:21',
num:23
}
]
2. 属性值是数字 Number
'num1|+1':1,//属性值⾃动加 1,初始值为 number。
'num2|1-10':1,//⽣成⼀个⼤于等于 min、⼩于等于 max 的整数,属性值 number 只是⽤来确定类型。
'num3|1-10.2-4':1,// 'name|min-max.dmin-dmax': value,⽣成⼀个浮点数,整数部分⼤于等于 min、⼩于等于 max,⼩数部分保留 dmin 到 dmax 位。
'num4|1-10.2':1,//⽣成⼀个浮点数,整数部分⼤于等于 min、⼩于等于 max,⼩数部分保留 2位。
'num5|2':1,//⽣成固定number 2
⽣成后
num1:2
num2:7
num3:8.896
num4:4.07
num5:2
3. 属性值是布尔型 Boolean
'bool1|1':true,//随机⽣成⼀个布尔值,值为 true 的概率是 1/2,值为 false 的概率同样是 1/2。
'bool2|1-4':true,//随机⽣成⼀个布尔值,值为 value 的概率是 min / (min + max),值为 !value 的概率是 max / (min + max)。
⽣成后
bool1:false
bool2:false
4. 属性值是对象 Object
//5. 属性值是对象 Object
'obj1|2':{name:'@cname','age':1,id:'@guid'},//从属性值 object 中随机选取 count 个属性。
'obj2|1-3':{name:'@cname','age':1,id:'@guid'},//从属性值 object 中随机选取 min 到 max 个属性。
⽣成后
obj1:{
id:"Deffc335-d85e-8176-F3e5-FaBffB99df42"
name:"杨霞"
},
obj2:{
age:1
id:"4d2DcdbE-50d4-fE46-39AB-FE4bdBc3DabB"
}
5. 属性值是数组 Array
'array1|1':['前端⼯程师','后端⼯程师','UI⼯程师','需求⼯程师'],//从属性值 array 中随机选取 1 个元素,作为最终值。
'array2|+1':['前端⼯程师','后端⼯程师','UI⼯程师','需求⼯程师'],//从属性值 array 中顺序选取 1 个元素,作为最终值。
'array3|1-3':['前端⼯程师','后端⼯程师','UI⼯程师','需求⼯程师'],//通过重复属性值 array ⽣成⼀个新数组,重复次数⼤于等于 min,⼩于等于 max。
'array4|2':['前端⼯程师','后端⼯程师','UI⼯程师','需求⼯程师'],//⼤于1时,通过重复属性值 array ⽣成⼀个新数组,重复次数为 count。
⽣成后
array1:"前端⼯程师",
array2:"需求⼯程师",
array3:[
"前端⼯程师"
"后端⼯程师"
"UI⼯程师"
"需求⼯程师"
"前端⼯程师"
"后端⼯程师"
"UI⼯程师"
"需求⼯程师"
],
array4:[
"前端⼯程师",
"后端⼯程师",
"UI⼯程师",
js中文正则表达式"需求⼯程师",
"前端⼯程师",
"后端⼯程师",
"UI⼯程师",
"需求⼯程师"
]
6. 属性值是正则表达式 RegExp,根据正则表达式 regexp 反向⽣成可以匹配它的字符串。⽤于⽣成⾃定义格式的字符串。
'regexp1':/[a-z][A-Z][0-9]/,
'regexp2':/\w\W\s\S\d\D/,
'regexp3':/\d{5,10}/,
⽣成后
regexp1:"uO6"
regexp2:"T[K9^"
regexp3:"256462548"
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论