Lieber Felix,
was haste da wieder für einen Bockmist verzapft. Aber echt jetzt!
Du definierst eine character class mit dem Ausschlusszeichen '^':
var rexp = new RegExp(/[^\/:*?"<>|]/)
Das stimmt nicht. Hier wird eine RegExp definiert, die keinen Inhalt hat. Der an RegExp() zu übermittelnde erste Parameter muss ein String sein, kein RegExp-Objekt:
var rexp = new RegExp("[\\/:\*\?\"<>\|]"); // back slash vor dem quote nicht vergessen!
Deshalb wurden die erlaubten Zeichen auch nicht ersetzt.
Liebe Grüße,
Felix Riesterer.