getSafeFolderName

node v6.17.1
version: master
endpointsharetweet
const _ = require("lodash") const service = {}; service.replaceGreekCharacters = function (string) { var replace = new Array('\u00E1', '\u00C1', '\u00E9', '\u00C9', '\u00ED', '\u00CD', '\u00F3', '\u00D3', '\u00FA', '\u00DA', '\u00FC', '\u00DC', '\u00F6', '\u00D6', '\u00F5', '\u00D5', '\u00FB', '\u00DB', '\u00BE', '\u0161', '\u00E8', '\u017E', '\u00FD', '\u00F4', '\u00E4', '\u00F2', '\u00E5', '\u00BC', '\u0160', '\u00C8', '\u017D', '\u00DD', '\u00D2', '\u00C5', '\u00EC', '\u00CC', '\u00EA', '\u00C6', '\u00E6', '\u00D8', '\u00F8'); var replace_n = new Array('a', 'A', 'e', 'E', 'i', 'I', 'o', 'O', 'u', 'U', 'u', 'U', 'o', 'O', 'o', 'O', 'u', 'U', 'l', 's', 'c', 'z', 'y', 'o', 'a', 'n', 'a', 'l', 's', 'C', 'Z', 'Y', 'N', 'A', 'e', 'E', 'e', 'AE', 'ae', 'O', 'o'); if (_.isString(string) && _.trim(string).length > 0) { for (var i = 0; i < replace.length; i++) { string = string.replace(replace[i], replace_n[i]); } } return string; }; service.cleanSpaces = function (string) { var seperator = '/'; if (_.isString(string) && _.trim(string).length > 0) { var parts = string.split(seperator); if (_.isArray(parts) && parts.length > 0) { _.forEach(parts, function (value, i) { parts[i] = _.trim(value) }); string = parts.join(seperator); } } return string; }; service.getSafeFolderName = function (name, allowSubFolders) { if (_.isString(name)) { var regex = /[^a-zA-Z0-9 @&.\-_]/g; if (allowSubFolders) { regex = /[^a-zA-Z0-9 @&.\-_\/]/g; } name = service.replaceGreekCharacters(name); name = name.replace(regex, ''); name = _.trimEnd(name, '/._- '); name = _.trimStart(name, '/._- '); name = service.cleanSpaces(name); } return name; }; service.getSafeFolderName('Boruto: Naruto Next Generations αυ/Season 1', true)
Loading…

no comments

    sign in to comment