Wyrażenie regularne JavaScript do sprawdzania poprawności nazw plików

Mam wyrażenie regularne do sprawdzania nazw plików. Tutaj jest to:

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

Powinien zezwalać na takie nazwy plików:

aaa
aaa.ext
a#
A9#.ext

Następujące znaki są niedozwolone\ / : * ? \" < > |

Problem polega na tym, że nazwy plików takie jak*.txt lub/\kk przechodzi walidację. Robię sprawdzanie poprawności za pomocą zdarzenia keyup. Więc kiedy położyłem jeden dodatkowy znak po niedozwolonym, to pokazuje, że wszystko jest w porządku.

questionAnswers(6)

yourAnswerToTheQuestion