const regex = /\/\*[\s\S]*?\*\//g;
// Alternative syntax using RegExp constructor
// const regex = new RegExp('\\\/\\*[\\s\\S]*?\\*\\\/', 'g')
const str = `var ExecutionScript = (function () {
function ExecutionScript() {
}
ExecutionScript.prototype.RemoveSchemes = function (e) {
var _this = this;
debugger;
return new Promise(function (resolve, reject) { return __awaiter(_this, void 0, void 0, function () {
var selectedRole, currentSchemes, schemesToRemove, tempSchemes, filteredSchemes, _loop_1, newSchemes, _i, schemesToRemove_1, selectedScheme, _a, _b, scheme_1, newSchemes, _c, newSchemes_1, s;
return __generator(this, function (_d) {
switch (_d.label) {
case 0://test
selectedRole = e.data.Role_Variable.currentItem.Role.currentItem;
currentSchemes = selectedRole.Scheme.value;
schemesToRemove = e.plugins.Schemes_From_Data_Grid.SelectedItems;
tempSchemes = e.data.Temp_Role_Variable.currentItem.Scheme;
_loop_1 = function (selectedScheme) {
var _i, filteredSchemes_1, scheme, _a, newSchemes_2, s;
return __generator(this, function (_b) {
switch (_b.label) {
case 0:
filteredSchemes = currentSchemes.filter(function (scheme) { return scheme.ID !== selectedScheme.ID; });
_i = 0, filteredSchemes_1 = filteredSchemes;
_b.label = 1;/*
* testing multline comment
*/case 1:
if (!(_i < filteredSchemes_1.length)) return [3 /*break*/, 4];
scheme = filteredSchemes_1[_i];/*
* testing multline comment
*/
return [4 /*yield*/, tempSchemes.create(1, false, e.data.Temp_Role_Variable.currentItem)];
case 2:
/*
* testing multline comment
*/
newSchemes = _b.sent();
for (_a = 0, newSchemes_2 = newSchemes; _a < newSchemes_2.length; _a++) {
s = newSchemes_2[_a];
s.Active = scheme.Active;
s.Description = scheme.Description;
s.DisplayName = scheme.DisplayName;
s.Name = scheme.Name;
s.Role = scheme.Role;
s.SchemeId = scheme.SchemeId;
}
debugger;
tempSchemes.addItems(newSchemes);
_b.label = 3;
case 3://
_i++;
return [3 /*break*/, 1];
case 4: return [2 /*return*/];
}
});
};//
_i = 0, schemesToRemove_1 = schemesToRemove;
_d.label = 1;
case 1:
if (!(_i < schemesToRemove_1.length)) return [3 /*break*/, 4];
selectedScheme = schemesToRemove_1[_i];
return [5 /*yield**/, _loop_1(selectedScheme)];
case 2:
_d.sent();
_d.label = 3;
case 3:
_i++;
return [3 /*break*/, 1];
case 4:
// }
selectedRole.Scheme.clear();
_a = 0, _b = tempSchemes.value;
_d.label = 5;
case 5:
if (!(_a < _b.length)) return [3 /*break*/, 8];
scheme_1 = _b[_a];
return [4 /*yield*/, selectedRole.Scheme.create(1, false, e.data.Role_Variable.currentItem)];
case 6:
newSchemes = _d.sent();
for (_c = 0, newSchemes_1 = newSchemes; _c < newSchemes_1.length; _c++) {
s = newSchemes_1[_c];
s.Active = scheme_1.Active;
s.Description = scheme_1.Description;
s.DisplayName = scheme_1.DisplayName;
s.Name = scheme_1.Name;
s.Role = scheme_1.Role;
s.SchemeId = scheme_1.SchemeId;
}
selectedRole.Scheme.addItems(newSchemes);
_d.label = 7;
case 7:
_a++;
return [3 /*break*/, 5];
case 8:
e.data.Role_Variable.currentItem;
selectedRole.ConfiguredStatus = 'Complete';
resolve();
return [2 /*return*/];
}
});
}); });
};
ExecutionScript.prototype.S_On_Previous = function (e) {
e.data.currentUser.currentItem.Role.clear();
};
return ExecutionScript;
}());`;
// Reset `lastIndex` if this regex is defined globally
// regex.lastIndex = 0;
let m;
while ((m = regex.exec(str)) !== null) {
// This is necessary to avoid infinite loops with zero-width matches
if (m.index === regex.lastIndex) {
regex.lastIndex++;
}
// The result can be accessed through the `m`-variable.
m.forEach((match, groupIndex) => {
console.log(`Found match, group ${groupIndex}: ${match}`);
});
}
Please keep in mind that these code samples are automatically generated and are not guaranteed to work. If you find any syntax errors, feel free to submit a bug report. For a full regex reference for JavaScript, please visit: https://developer.mozilla.org/en/docs/Web/JavaScript/Guide/Regular_Expressions