Используйте отрицательный класс символов , написав ^
сразу после открывающей квадратной скобки:
/[^a-zA-Z0-9!#$&%*+,-./: ;=?@_]/g
Здесь ^
имеет особое значение, которое отличается от обычного значения, которое он имеет в регулярных выражениях (обычно это соответствует началу строки).
Итак, ваш исправленный код будет выглядеть так:
var pattern = /[^a-zA-Z0-9!#$&%*+,-./: ;=?@_]/g;
// ...
alert("New " + jVal.replace(pattern, ""));
Также обратите внимание, что вызов replace
на самом деле не меняет исходную строку - он возвращает измененную копию строки. Если вы хотите изменить значение jVal, вам нужно переназначить его:
jVal = jVal.replace(pattern, "");