我目前在一家公司工作,必须解决IE11的几个问题。仅在IE11中存在一个问题,该问题围绕着来自node_modules的uuidv4。

错误代码和我看到的错误是


  正则表达式中的语法错误


    /***/ (function (module, exports, __webpack_require__) {

        "use strict";
        //eval("

        var __importDefault = (this && this.__importDefault) || function (mod) {

            return (mod && mod.__esModule) ? mod : {"default": mod };};

            Object.defineProperty(exports, "__esModule", { value: true });
            const v4_1 = __importDefault(__webpack_require__(/*! uuid/v4 */ "../node_modules/uuid/v4.js"));
            const v5_1 = __importDefault(__webpack_require__(/*! uuid/v5 */ "../node_modules/uuid/v5.js"));
            const uuidv4 = function () {
                return v4_1.default();
            };

            uuidv4.regex = {
                v4: /^(?:[a-f0-9]{8}-[a-f0-9]{4}-4[a-f0-9]{3}-[a-f0-9]{4}-[a-f0-9]{12})|(?:0{8}-0{4}-0{4}-0{4}-0{12})$/u,
                v5: /^(?:[a-f0-9]{8}-[a-f0-9]{4}-5[a-f0-9]{3}-[a-f0-9]{4}-[a-f0-9]{12})|(?:0{8}-0{4}-0{4}-0{4}-0{12})$/u
            }; uuidv4.is = function (value) {

                return uuidv4.regex.v4.test(value) || uuidv4.regex.v5.test(value);
            }; uuidv4.empty = function () {
                return '00000000-0000-0000-0000-000000000000';
            };

            uuidv4.fromString = function (text) {
                const namespace = 'bb5d0ffa-9a4c-4d7c-8fc2-0a7d2220ba45';
                const uuidFromString = v5_1.default(text, namespace);
                return uuidFromString;
            };

            exports.default = uuidv4;

            //# sourceURL=webpack://_chex/../node_modules/uuidv4/build/lib/uuidv4.js?");

            /***/
        }),


我确实看到并希望解决在此更改中代码中可能存在的问题之一

v5: /^(?:[a-f0-9]{8}-[a-f0-9]{4}-5[a-f0-9]{3}-[a-f0-9]{4}-[a-f0-9]{12})|(?:0{8}-0{4}-0{4}-0{4}-0{12})$/u



v5: /^(?:[a-f0-9]{8}-[a-f0-9]{4}-4[a-f0-9]{3}-[a-f0-9]{4}-[a-f0-9]{12})|(?:0{8}-0{4}-0{4}-0{4}-0{12})$/u

{4}-5是此正则表达式中的冒犯项,但是IE11仍然抱怨相同的问题。

但仔细检查,这就是它所抱怨的那条线

v4: /^(?:[a-f0-9]{8}-[a-f0-9]{4}-4[a-f0-9]{3}-[a-f0-9]{4}-[a-f0-9]{12})|(?:0{8}-0{4}-0{4}-0{4}-0{12})$/u,

当尝试放置调试器语句时,我无法像到达那里之前那样打这些语句,并且正在评估代码,它失败并产生错误。

对此,我们将提供任何帮助。

最佳答案

/u modifier仅在ECMAScript 6 / ES2015和IE11 only supports ES5 standard中引入。

由于没有使用u修饰符标志定义其行为的特定构造,因此您可以简单地删除u即可使用表达式。

关于javascript - uuidv4.js正则表达式问题-IE11,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/59102986/

10-11 13:26