2024-05-30 20:27:12 +08:00
|
|
|
(function () {
|
|
|
|
|
if (typeof window.RegExp === "undefined") {
|
|
|
|
|
return;
|
|
|
|
|
}
|
2024-05-29 09:39:26 +08:00
|
|
|
|
2024-05-30 20:27:12 +08:00
|
|
|
const originalRegExp = window.RegExp;
|
2024-05-29 09:39:26 +08:00
|
|
|
|
2024-05-30 20:27:12 +08:00
|
|
|
window.RegExp = function (pattern, flags) {
|
|
|
|
|
if (pattern instanceof originalRegExp && flags === undefined) {
|
|
|
|
|
flags = pattern.flags;
|
|
|
|
|
}
|
2024-05-29 09:39:26 +08:00
|
|
|
|
2024-05-30 20:27:12 +08:00
|
|
|
if (flags) {
|
2025-09-20 02:49:11 +08:00
|
|
|
if (
|
|
|
|
|
!Object.prototype.hasOwnProperty.call(
|
|
|
|
|
originalRegExp.prototype,
|
|
|
|
|
"unicodeSets",
|
|
|
|
|
)
|
|
|
|
|
) {
|
2024-05-30 20:27:12 +08:00
|
|
|
if (flags.includes("v")) {
|
|
|
|
|
flags = flags.replace("v", "u");
|
|
|
|
|
}
|
|
|
|
|
}
|
2024-05-29 09:39:26 +08:00
|
|
|
|
2025-09-20 02:49:11 +08:00
|
|
|
if (
|
|
|
|
|
!Object.prototype.hasOwnProperty.call(
|
|
|
|
|
originalRegExp.prototype,
|
|
|
|
|
"hasIndices",
|
|
|
|
|
)
|
|
|
|
|
) {
|
2024-05-30 20:27:12 +08:00
|
|
|
if (flags.includes("d")) {
|
|
|
|
|
flags = flags.replace("d", "");
|
|
|
|
|
}
|
|
|
|
|
}
|
2024-05-29 09:39:26 +08:00
|
|
|
}
|
2024-05-30 20:27:12 +08:00
|
|
|
|
|
|
|
|
return new originalRegExp(pattern, flags);
|
|
|
|
|
};
|
|
|
|
|
window.RegExp.prototype = originalRegExp.prototype;
|
|
|
|
|
})();
|