Как избежать обратной косой черты в JavaScript?
Я хочу заменить обратную косую черту => '\' на безопасную \
замена.
Но мой код, заменяющий все '#', не выполняется, когда применяется для замены '\':
el = el.replace(/\#/g, '#'); // replaces all '#' //that's cool
el = el.replace(/\\/g, '\'); // replaces all '\' //that's failing
Зачем?
2 ответа
Решение
Откройте консоль и введите
'\'.replace(/\\/g, '\');
происходит сбой, потому что косая черта в строке на самом деле не в строке, она экранирует
'\\'.replace(/\\/g, '\');
работает, потому что он берет один слеш и находит его.
Ваше регулярное выражение работает.
Вы можете использовать String.raw для удобного добавления слешей в строковые литералы. Например String.raw`\a\bcd\e`.replace(/\\/g, '\');