//语义化的文字转成数字
        function str2number (str) {
            let _str = str.substr(-1).toUpperCase()
            let number = parseFloat(str) || 0
            if (_str == 'W') number *= 10000
            else if (_str == 'K') number *= 1000
            return number
        }

        //解析文字,提取成最小最大值范围
        function parseRange(text) {
            text = text.toUpperCase()
            let isMax = text.indexOf('内') > -1
            let res = text.match(/([\d\.]+[KW])(?:\-([\d\.]+[KW]))?/)  //  1k-1.5W
            if (res) {
                let min =0 , max = 0
                if (typeof res[2] == 'undefined') {
                    //是xxx
                    if (isMax) {
                        max = str2number(res[1])
                    } else {
                        min = str2number(res[1])
                        max = min+1
                    }
                } else {
                    //是xxx-xxx格式
                    min = str2number(res[1])
                    max = str2number(res[2])
                }
                return [min, max]
            }
            return false
        }

        //判断区间 range1(用户预算) 是否包含在 区间range2(选项)内
        function inRange(range1, range2) {
            if (range1[0] == 0) {
                //不考虑最小金额时, 选项最大值内在最大预算内
                return range2[1] <= range1[1]
            }
            return range2[0]<=range1[0] && range2[1] >= range1[1]
        }

标签: none

添加新评论