Подтвердить что ты не робот

Как заменить специальные символы регулярным выражением в javascript?

Мне нужно заменить специальные символы из строки, например:

this.value = this.value.replace(/\n/g,'');

За исключением части регулярного выражения, мне нужно, чтобы она искала напротив:

[0-9] Найти любую цифру от 0 до 9
[A-Z] Найти любой символ из верхнего регистра A в верхний регистр Z
[a-z] Найти любой символ из строчной буквы a в нижний регистр z

плюс underscore и minus.

Следовательно, эта строка в порядке:

Abc054_34-шд

И эта строка плохая:

Fš 04//4.

Из плохой строки мне нужно удалить запрещенные символы.

Как я складываю это правило регулярного выражения?

4b9b3361

Ответ 1

Вы можете использовать класс символов с ^ отрицанием:

this.value = this.value.replace(/[^a-zA-Z0-9_-]/g,'');

Тесты:

console.log('Abc054_34-bd'.replace(/[^a-zA-Z0-9_-]/g,'')); // Abc054_34-bd
console.log('Fš 04//4.'.replace(/[^a-zA-Z0-9_-]/g,'')); // F044

Итак, поместив символы в [^...], вы можете решить, какие символы должны быть разрешены, а все остальные заменены.