我目前在一家公司工作,必须解决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/