Press n or j to go to the next uncovered block, b, p or k for the previous block.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 | 11x 11x 8x 8x 11x 11x 11x 53x 53x 53x 3x 1x 50x 43x 43x 9x 9x 7x 7x 1x 11x 2x | /** * UA字符串匹配列表 * @method env/uaMatch * @param {Object} list 检测 Hash 列表 * @param {String} ua 用于检测的 UA 字符串 * @param {Object} conf 检测器选项,传递给检测函数 * @example * var $uaMatch = require('@spore-ui/kit/packages/env/uaMatch'); * var rs = $uaMatch({ * trident: 'trident', * presto: /presto/, * gecko: function(ua){ * return ua.indexOf('gecko') > -1 && ua.indexOf('khtml') === -1; * } * }, 'xxx presto xxx'); * console.info(rs.presto); // true * console.info(rs.trident); // undefined */ function uaMatch(list, ua, conf) { var result = {}; if (!ua) { Iif (typeof window === 'undefined') { ua = ''; } else { ua = window.navigator.userAgent; } } ua = ua.toLowerCase(); Eif (typeof list === 'object') { Object.keys(list).forEach(function (key) { var tester = list[key]; Eif (tester) { if (typeof tester === 'string') { if (ua.indexOf(tester) > -1) { result[key] = true; } } else if ( Object.prototype.toString.call(tester) === '[object RegExp]' ) { var match = ua.match(tester); if (match) { Iif (match[1]) { result[key] = match[1]; } else { result[key] = true; } } } else Eif (typeof tester === 'function') { if (tester(ua, conf)) { result[key] = tester(ua); } } } }); } return result; } module.exports = uaMatch; |