Экранирование строки для использования в регулярных выражениях JavaScript [duplicate]
Я пытаюсь построить регулярное выражение в JavaScript на основе ввода пользователя:
function FindString(input) {
var reg = new RegExp('' + input + '');
// [snip] выполнение поиска
}
Однако регулярное выражение работает некорректно, когда ввод пользователя содержит символы ?
или *
, так как они интерпретируются как специальные символы регулярных выражений. На самом деле, если пользователь введет несбалансированный (
или [
в своей строке, регулярное выражение становится недопустимым.
Какую функцию JavaScript я должен использовать, чтобы правильно экранировать все специальные символы для использования в регулярных выражениях?
Как проверить корректность email-адреса в JavaScript?
Проверка соответствия строки регулярному выражению в JS
Как разделить строку с несколькими разделителями в JavaScript?
Вставка HTML в представление из контроллера AngularJS
Потеряно HTML-кодирование при чтении атрибута из поля ввода