From 8b3b265d870f0fb44286521e6b64bbe2c7d754c6 Mon Sep 17 00:00:00 2001 From: Grim <69561145+LinkIsGrim@users.noreply.github.com> Date: Wed, 30 Aug 2023 19:31:10 -0400 Subject: [PATCH] Common - Add `FUNC(escapeRegex)` (#9355) * add function * add source --- addons/common/XEH_PREP.hpp | 1 + addons/common/functions/fnc_escapeRegex.sqf | 20 ++++++++++++++++++++ 2 files changed, 21 insertions(+) create mode 100644 addons/common/functions/fnc_escapeRegex.sqf diff --git a/addons/common/XEH_PREP.hpp b/addons/common/XEH_PREP.hpp index d016ab26d6..9da48c3993 100644 --- a/addons/common/XEH_PREP.hpp +++ b/addons/common/XEH_PREP.hpp @@ -51,6 +51,7 @@ PREP(dropBackpack); PREP(endRadioTransmission); PREP(eraseCache); PREP(errorMessage); +PREP(escapeRegex); PREP(findUnloadPosition); PREP(firedEH); PREP(fixCollision); diff --git a/addons/common/functions/fnc_escapeRegex.sqf b/addons/common/functions/fnc_escapeRegex.sqf new file mode 100644 index 0000000000..adaa8bb557 --- /dev/null +++ b/addons/common/functions/fnc_escapeRegex.sqf @@ -0,0 +1,20 @@ +#include "script_component.hpp" +/* + * Author: LinkIsGrim + * Escapes special characters used in regex from a string + * + * Arguments: + * 0: String <STRING> + * + * Return Value: + * Safe string <STRING> + * + * Example: + * "\Q.*?AK-15.*?\E" call ace_common_fnc_escapeRegex + * + * Public: Yes + */ +params [["_string", "", [""]]]; + +// https://developer.mozilla.org/en-US/docs/Web/JavaScript/Guide/Regular_Expressions#escaping +_string regexReplace ["[.?*+^$[\]\\(){}|-]/gio", "\\$&"]