Would you like to clone this notebook?

When you clone a notebook you are able to make changes without affecting the original notebook.

Cancel

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