Проблема с регулярным выражением в JavaScript

Я пытаюсь написать функцию для проверки палиндромов, но столкнулся с проблемой в регулярном выражении. Вот мой код:

function проверкаПалиндрома(строка) {
  // Очистка строки
  var регулярка = '/[^а-яa-z0-9]/gi';
  строка = строка.toLowerCase();
  строка = строка.replace(регулярка, '');
  console.log(строка);

  // Переворот строки и проверка
  var обратнаяСтрока = строка.split('').reverse().join('');
  return обратнаяСтрока === строка;
}

проверкаПалиндрома("__Око");

Функция должна удалять все символы, кроме букв и цифр, а затем проверять, является ли строка палиндромом. Но почему-то регулярное выражение не работает правильно. Например, для входных данных “__Око” я ожидаю получить “око”, но этого не происходит.

В чем может быть проблема? Я уже проверил регулярное выражение на онлайн-тестере, и там оно работает корректно. Может быть, я неправильно использую метод replace?

Дело в кавычках, братан. Регулярку надо без них писать, типа:\n\nvar регулярка = /[^а-яa-z0-9]/gi;\n\nА то JS думает, что это просто строка, а не регулярка. Еще совет - используй let вместо var, так современнее. И название функции можно сократить до checkPalindrome, чтоб попроще было. Удачи с кодом!

Твоя проблема в конструкции регулярки. Не нужно оборачивать ее в кавычки, JS и так поймет. Вот рабочий вариант:

let регулярка = /[^а-яa-z0-9]/gi;

Еще совет - используй const для неизменяемых переменных. И лучше назови функцию isPalindrome - так понятнее. А вообще, для простых палиндромов можно обойтись и без регулярок, просто сравнив строку с перевернутой версией.