企业🤖AI智能体构建引擎,智能编排和调试,一键部署,支持私有化部署方案 广告
### 一、数据模板组成 > 数据模板中的每个属性由 3 部分构成:属性名、生成规则、属性值: ``` // 属性名 name ; 生成规则 rule ; 属性值 value 'name|rule':value ``` > **说明:** - 属性名与生成规则之前用竖线 \| 分隔 - 生成规则是可选的 - 生成规则的**含义** 需要依赖*属性值的类型*才能确定 - 属性值value中可以含有@占位符 - 属性值value指定了最终值的初始值和类型   #### **1.1 生成规则Rule** > 生成规则的含义会因为属性值的类型不同而产生不同的作用 ##### **1.1.1 规则** > 生成规则有7种格式 1. 'name|min-max': value 2. 'name|count': value 3. 'name|min-max.dmin-dmax': value 4. 'name|min-max.dcount': value 5. 'name|count.dmin-dmax': value 6. 'name|count.dcount': value 7. 'name|+step': value - dmin最少小数位,dmax最多小数位 - step递增 - dcount固定位数的小数位 #### **1.1.2 不同属性值对应的规则** > **1. 值是字符串** 1. 'name|min-max':string 重复string,次数为min-max 2. 'name|count:string' 重复string ,次数为count > **2.值是数字Number** 1. 'name|+1':number #值加1,初始值为number 2. 'name|min-max':number #生成一个min-max之前的整数 3. 'name|min-max.dmin-dmax':number #生成一个浮点数,整数部分在min-max之间,小数部分扣留dmin-dmax位 4. 'name|count.dcount':number #生成一个整数部分为count,保留dcount位小数的数 ``` # 值为数字 Mock.mock({ "number|+1": 202, //202, 初始值202 "number|1-100": 100, // 83 随机1-100值 "number|1-100.1-10": 1, //23.12345 随机1-100整数加1-10位小数 "number|123.1-10": 1, //123.234 123整数加1-10位小数 "number|123.3": 1, // 123.333 123整数加3位小数 "number|123.10": 1.123 // 123.1234567890 123整数加10位小数 }) # 值为字符串 Mock.mock({ "string|1-10": "★" , //重复N次 符号(1<= N<=10) "string|3": "★" // 重复3次 }) ``` > **3.值为布尔值** 1. 'name|1': boolean 随机生成一个布尔值,值为 true 的概率是 1/2,值为 false 的概率同样是 1/2。 2. 'name|min-max': value 随机生成一个布尔值,值为 value 的概率是 min / (min + max),值为 !value 的概率是 max / (min + max)。 > **4.值为对象** 1. 'name|count': object 从属性值 object 中随机选取 count 个属性。 2. 'name|min-max': object 从属性值 object 中随机选取 min 到 max 个属性。 > **5.值为数组Array** 1. 'name|1': array 从属性值 array 中随机选取 1 个元素,作为最终值。 2. 'name|+1': array' 从属性值 array 中顺序选取 1 个元素,作为最终值。 3. 'name|min-max': array 通过重复属性值 array 生成一个新数组,重复次数大于等于 min,小于等于 max。 4. 'name|count': array 通过重复属性值 array 生成一个新数组,重复次数为 count。 ``` # 值为Boolean Mock.mock({ 'boolean|1':true //false (0.5概率) }) # 值为Object Mock.mock({ "object|2": { "310000": "上海市", "320000": "江苏省", "330000": "浙江省", "340000": "安徽省" }, "object2|2-4": { "110000": "北京市", "120000": "天津市", "130000": "河北省", "140000": "山西省" } }) ====> { "object": { "310000": "上海市", "320000": "江苏省" }, "object2:{ "110000": "北京市", "120000": "天津市", "140000": "山西省" } } # 值为Array Mock.mock({ "array1 | 1": [ "AMD", "CMD", "UMD"], // UMD "array2|+1":[ "AMD", "CMD", "UMD"], // AMD "array3|3":["Mock.js"], // ["Mock.js","Mock.js","Mock.js"] "array4|1-5":["Mock"], // ["Mock","Mock"] }) ``` > **6.值为正则表达式** > 根据正则表达式regExp反向生成可以匹配它的字符串。用于生成自定义格式的字符串。 ``` Mock.mock({ 'regexp1':/\d{5,10}/, //561659409 'tel':/^1[3456789]\d{9}/ //18856908532 }) ``` #### **1.3 模拟数据** ``` let testData = mock.mock({ 'list|1-10':[{ 'id:+1':1, 'tel':/^1[3456789]\d{9}/, 'address|1':['四川','北京','上海','广州'], }] }) // 结果 list: [ {id: 1, tel: "16727875239", address: "四川"}, {id: 2, tel: "18795168450", address: "上海"} ] ```