В Perl существует функция с именем quotemeta
, которая принимает строку и возвращает шаблон регулярного выражения, соответствующий этой строке.Экранирование текста для регулярного выражения
Использовать quotemeta
при динамическом построении рисунка. Например,
"^"+quotemeta(var)+"_\\d+$"
Реализация JavaScript следующим образом:
function quotemeta(s) {
return String(s).replace(/\W/g, "\\$&");
}
ли JavaScript или JQuery уже есть такая функция?
@ p.s.w.g Я уже знаю, что можно написать собственное решение. Мой вопрос заключается в том, существует ли уже в JS или jQuery. Я посмотрел, но я хочу дважды проверить. Не дубликат. – ikegami
Как вы говорите, кэметата Перла - '[^ \ w]'. Это действительно опасно, если текст должен быть введен в регулярное выражение. Лучше избегать 12 мета-неклассов и 4 метакласса вместо этого, то есть если он переходит к части строки регулярного выражения. – sln
@sln, назад. Гораздо безопаснее избегать всего, что может потребоваться для ускорения (белый список), а не для определения того, что нужно избегать в каждой реализации (черный список). – ikegami