Как избежать обратной косой черты в JavaScript?

Я хочу заменить обратную косую черту = > '\' на безопасную замену \.

Но мой код, заменяющий все "#", терпит неудачу при применении для замены "\":

el = el.replace(/\#/g, '#'); // replaces all '#' //that cool
el = el.replace(/\\/g, '\'); // replaces all '\' //that failing

Почему?

Ответ 1

откройте консоль и введите

'\'.replace(/\\/g, '\'); 

терпит неудачу, потому что косая черта в строке на самом деле не находится в строке, она ускользает от

'\\'.replace(/\\/g, '\');

работает, потому что он принимает одну косую черту и находит ее.

ваше регулярное выражение работает.

Ответ 2

Вы можете использовать String.raw для удобного добавления косых черт в ваши строковые литералы. Например. String.raw`\a\bcd\e`.replace(/\\/g, '\');