Ваше текущее регулярное выражение не соответствует строке, содержащей -
, поскольку [)-+]
соответствует )
, *
и +
.Строковый литерал в двойных кавычках тоже кажется виновником.
Вам нужно определить шаблон внутри одинарных кавычек и поставить дефис в конце класса символов:
regExVal='^[!a-zA-Z0-9@#$%^&*()_+=~-]+$';
^^