1. // eslint-disable-next-line no-useless-escape
    2. const xiaobangguihuaRegx = /xiaobangguihua\/[\d\.]+/i;
    3. /**
    4. * 比较版本号,大于等于返回 true,只支持*.*.*的格式,例如4.3.0
    5. * @param {string} v1 版本1
    6. * @param {string} v2 版本2
    7. */
    8. const compareVersion = (v1 = '', v2 = '') => {
    9. const preVersion1 = parseFloat(v1);
    10. const preVersion2 = parseFloat(v2);
    11. const nextVersion1 = v1.replace(`${preVersion1}.`, '');
    12. const nextVersion2 = v2.replace(`${preVersion2}.`, '');
    13. if (preVersion1 > preVersion2) {
    14. return true;
    15. }
    16. if (preVersion1 < preVersion2) {
    17. return false;
    18. }
    19. return nextVersion1 >= nextVersion2;
    20. };
    21. // 根据正则获取版本号
    22. const getVersion = regx => {
    23. const query = String(window.navigator.userAgent)
    24. .toLowerCase()
    25. .match(regx);
    26. if (!query) {
    27. return [0, 0, 0];
    28. }
    29. const version = query[0].match(/\d+/g) || {};
    30. if (typeof version[0] === 'undefined' || typeof version[1] === 'undefined' || typeof version[2] === 'undefined') {
    31. return [0, 0, 0];
    32. }
    33. return [parseInt(version[0], 10), parseInt(version[1], 10), parseInt(version[2], 10)];
    34. };
    35. /**
    36. * 判断当前版本是否大于传入版本
    37. *
    38. * @param {string} v1 传入版本
    39. * @return {boolean} true当前版本大于传入版本 false当前版本小于传入版本
    40. */
    41. export const gtVersion = v2 => {
    42. const v1 = getVersion(xiaobangguihuaRegx).join('.');
    43. return compareVersion(v1, v2);
    44. };