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

189
13 апреля 2018, 16:24

Есть строка приходящая из input , из нее надо сделать регулярку (аналог поиска) , но если допустим в поле ввести + или \ , будут ошибки создание регулярного выражения через new RegExp , тк она принимает не строку , а паттерн , как можно это избежать ? что бы при вводе любых данных в input, у меня создавалась регулярка на поиск этой строки , а не паттерн который обрабатывался ReqExp ?и вообще правельный ли это подход

Answer 1

Заэкранируйте спец.символы в строке и получится валидная регулярка.

RegExp.escape= function(s) {
    return s.replace(/[-\/\\^$*+?.()|[\]{}]/g, '\\$&');
};

(C) https://stackoverflow.com/questions/3561493/is-there-a-regexp-escape-function-in-javascript

READ ALSO
Как расширить массив на основе другого массива?

Как расширить массив на основе другого массива?

Как сделать чтобы первый массив расширил себя используя значения второго массива? То есть мне нужно сделать, чтобы было вот так

184
Как добавить текст внизу кнопки в react?

Как добавить текст внизу кнопки в react?

Использую react-js и библиотеку https://material-ui-nextcom/demos/buttons/

161
Что использовать, что бы метод работал пока не пройдет определенное время?

Что использовать, что бы метод работал пока не пройдет определенное время?

Нужно чтобы метод работал определенное время, например выводил в textarea слово 5 секунд, что для этого можно использовать?

158