| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071 |
- /*
- ## Parser
- 解析数据模板(属性名部分)。
- * Parser.parse( name )
-
- ```json
- {
- parameters: [ name, inc, range, decimal ],
- rnage: [ min , max ],
- min: min,
- max: max,
- count : count,
- decimal: decimal,
- dmin: dmin,
- dmax: dmax,
- dcount: dcount
- }
- ```
- */
- var Constant = require('./constant')
- var Random = require('./random/')
- /* jshint -W041 */
- module.exports = {
- parse: function(name) {
- name = name == undefined ? '' : (name + '')
- var parameters = (name || '').match(Constant.RE_KEY)
- var range = parameters && parameters[3] && parameters[3].match(Constant.RE_RANGE)
- var min = range && range[1] && parseInt(range[1], 10) // || 1
- var max = range && range[2] && parseInt(range[2], 10) // || 1
- // repeat || min-max || 1
- // var count = range ? !range[2] && parseInt(range[1], 10) || Random.integer(min, max) : 1
- var count = range ? !range[2] ? parseInt(range[1], 10) : Random.integer(min, max) : undefined
- var decimal = parameters && parameters[4] && parameters[4].match(Constant.RE_RANGE)
- var dmin = decimal && decimal[1] && parseInt(decimal[1], 10) // || 0,
- var dmax = decimal && decimal[2] && parseInt(decimal[2], 10) // || 0,
- // int || dmin-dmax || 0
- var dcount = decimal ? !decimal[2] && parseInt(decimal[1], 10) || Random.integer(dmin, dmax) : undefined
- var result = {
- // 1 name, 2 inc, 3 range, 4 decimal
- parameters: parameters,
- // 1 min, 2 max
- range: range,
- min: min,
- max: max,
- // min-max
- count: count,
- // 是否有 decimal
- decimal: decimal,
- dmin: dmin,
- dmax: dmax,
- // dmin-dimax
- dcount: dcount
- }
- for (var r in result) {
- if (result[r] != undefined) return result
- }
- return {}
- }
- }
|