Hallo dedlfix, herzlichen Dank für deine tolle Erklärung.
Ich sehe hier einen Stringanfang ". Dann kommt (die Klammer ignorierend) ein , welches dem folgenden Zeichen eine besondere Bedeutung gibt. Das folgende \ heißt in dem Fall, dass genau ein \ wörtlich gemeint ist. Die zwei
\\
fallen damit zu einem \ zusammen. Mit den nächsten beiden passiert dasselbe. Der entstehende String ist also letztlich[\\/:*?"<>|]
Ich will jetzt nicht nerven aber im Fall des Backslash \ ist es mir dennoch nicht ganz klar. Ich habe das String Literal mit einfachem Hochkomma versehen und alle überflüssingen \ entfernt. Damit der Backslash erkannt wird braucht man wirklich 4 \ bzw 3. Nur so kommt die Alert Meldung. Aber ich dachte eigentlich einer müsste doch reichen?
new RegExp('[\\\\/:*?"<>|]');
if(!fname.match(rexp))
{
//alle OK
}
else
{
alert('Keine gültige Zeichen sind < > ? " : | \ / *');
}