import Foundation
let pattern = #"(\([\w\s].*[\w\s]\)|\(\)) =>"#
let regex = try! NSRegularExpression(pattern: pattern, options: [.anchorsMatchLines, .caseInsensitive])
let testString = #"""
var MODULE = ((my, $, undefined) => {
console.log('EXECUTION FROM LEGACY APP START ===>');
// if private var defined in my module, use that
// else create a private var
var _private = my._private = my._private || {},
_seal = my._seal = function seal(seal) {
if (!seal) {
return;
}
delete my._private;
delete my._seal;
console.log('SEALED');
},
_unseal = my._unseal = function unseal(unseal) {
if (!unseal) {
return;
}
my._seal = _seal;
my._private = _private;
console.log('UNSEALED');
};
var name = 'Tonny Frank';
_private.name = 'This is a private name: ' + name;
_private.reverse = function reverse(str) {
return str.split('').reverse().join('');
};
if ($ === undefined) {
console.log('jQuery not defined');
return;
}
$(() => {
var $h1 = $('.card').children('h1');
$h1.html(_private.reverse($h1.html()));
});
console.log(my);
my.myMethod = () => {
console.log('MODULE myMethod Executed');
$('.name').html('Abhisek ...');
$('button').click(function (ev) {
ev.preventDefault();
console.log(this);
$(this).html('Damn!');
});
};
console.log('EXECUTION FROM LEGACY APP END <===');
return my;
})(MODULE || {}, this.jQuery);
"""#
let stringRange = NSRange(location: 0, length: testString.utf16.count)
let substitutionString = #"function $1"#
let result = regex.stringByReplacingMatches(in: testString, range: stringRange, withTemplate: substitutionString)
print(result)
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 Swift 5.2, please visit: https://developer.apple.com/documentation/foundation/nsregularexpression