Как экранировать слеш в JS

1125
04 февраля 2017, 10:31

Всем привет. Помогите пожалуйста. Есть вот такой код

mypath=homeDir.replace(/Applications/test/Contents/Resources/profile/g,"local_images");
alert (mypath);

В нем хочу заменить Applications/AvtoBot_v0.0.1.app/Contents/Resources/profile на local_images но вот не знаю как эти / слешы екранировать.

Answer 1

Есть 4 способа экранирования - 3 из них такие же как для строк:

  • обратный слеш: \/ - обычно используется именно он
  • шестнадцатеричный код: \x2F
  • юникодный шестнадцатеричный код: \u002F

и четвёртый уникален для регулярок:

  • квадратные скобки: [/]

var s = "qwea/bra/brr"; 
 
console.log(s.match(/a\/b/g).join(" ")); 
console.log(s.match(/a[/]b/g).join(" ")); 
console.log(s.match(/a\x2Fb/g).join(" ")); 
console.log(s.match(/a\u002Fb/g).join(" "));

Answer 2

Про экранирование уже всё написали, поэтому дополню другим способом инстанциировать регулярку:

new RegExp('Applications/test/Contents/Resources/profile', 'g')

Это может стать особенно полезным в String.prototype.replace, потому что строка для замены может быть получена из стороннего источника, а единственный вариант множественной замены предполагает RegExp с флагом global в первом параметре:

function escapeRegExp(str) {
  return str.replace(/[|\\{()[^$+*?.-]/g, "\\$&");
}
mypath = homeDir.replace(new RegExp(escapeRegExp(getBasePath()), 'g'), 'local_images');

В этом сценарии необходимо заэкранировать все спецсимволы, что и делает функция escapeRegExp.

Answer 3

Экранировать слэш (как и многие другие символы) можно через обратный слеш: \/
Также можно использовать спецсимволы: \u002F

Answer 4
var mypath=homeDir.replace("/Applications/test/Contents/Resources/profile/g","local_images");
READ ALSO
Проблема JavaScript не читается

Проблема JavaScript не читается

Есть некая проблема, для меня очень весомаяЕсть таблица которая обновляется poll-запросом каждые 5 секунд, вcё прекрасно работает

464
открыть папку на FTP и выделить файл

открыть папку на FTP и выделить файл

Добрый деньИз базы данных Moodle на сервере пытаюсь получить доступ к FTP и выделить (подсветить) нужный мне файл

405
найди ошибку в js коде [требует правки]

найди ошибку в js коде [требует правки]

Ошибка в ненужном вызове целочисленной переменной, как функции:

364