Как избежать обратной косой черты в 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, '\');

Другие вопросы по тегам