Expresiones regulares de Javascript para validar nombres de archivos

Tengo una expresión regular para validar nombres de archivos. Aquí es:

/[0-9a-zA-Z\^\&\'\@\{\}\[\]\,\$\=\!\-\#\(\)\.\%\+\~\_ ]+$/

Debería permitir nombres de archivo como este:

aaa
aaa.ext
a#
A9#.ext

Los siguientes caracteres no están permitidos.\ / : * ? \" < > |

El problema es que los nombres de archivos como*.txt o/\kk Pasa la validación. Estoy haciendo la validación con el evento keyup. Así que cuando pongo un carácter extra después de no permitido, se muestra que todo está correcto.

Respuestas a la pregunta(6)

Su respuesta a la pregunta