【发布时间】:2020-03-24 22:40:36
【问题描述】:
我目前在一家公司工作,我必须解决一些 IE11 问题。其中一个问题仅存在于以 node_modules 中的 uuidv4 为中心的 IE11 中。
错误代码和我看到的错误是
正则表达式语法错误
/***/ (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修饰符,你甚至不需要它。 -
为什么会导致问题?
-
IE11 不支持 ES6。
/u在 ECMAScript 6 中引入 -
你是 ES6 元素吗?混蛋!!这是有效的,所以如果你想提供它作为答案,我很乐意奖励积分
标签: javascript regex node-modules