var illegalRe = /[\/\?<>\\:\*\|"]/g ; var controlRe = /[\x00-\x1f\x80-\x9f]/g ; var reservedRe = /^\.+$/ ; var windowsReservedRe = /^(con|prn|aux|nul|com[0-9]|lpt[0-9])(\..*)?$/i ; var windowsTrailingRe = /[\. ]+$/ ; function sanitize ( input , replacement ) { if ( typeof input !== 'string' ) { throw new Error ( 'Input must be string' ) ; } var sanitized = input . replace ( illegalRe , replacement ) . replace ( controlRe , replacement ) . replace ( reservedRe , replacement ) . replace ( windowsReservedRe , replacement ) . replace ( windowsTrailingRe , replacement ) ; return sanitized ; } export default function ( input , options ? ) { var replacement = ( options && options . replacement ) || '' ; var output = sanitize ( input , replacement ) ; if ( replacement === '' ) { return output ; } return sanitize ( output , '' ) ; }