Всем привет. Помогите пожалуйста. Есть вот такой код
mypath=homeDir.replace(/Applications/test/Contents/Resources/profile/g,"local_images");
alert (mypath);
В нем хочу заменить Applications/AvtoBot_v0.0.1.app/Contents/Resources/profile
на local_images
но вот не знаю как эти / слешы екранировать.
Есть 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(" "));
Про экранирование уже всё написали, поэтому дополню другим способом инстанциировать регулярку:
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
.
Экранировать слэш (как и многие другие символы) можно через обратный слеш: \/
Также можно использовать спецсимволы: \u002F
var mypath=homeDir.replace("/Applications/test/Contents/Resources/profile/g","local_images");
Виртуальный выделенный сервер (VDS) становится отличным выбором
Есть некая проблема, для меня очень весомаяЕсть таблица которая обновляется poll-запросом каждые 5 секунд, вcё прекрасно работает
Добрый деньИз базы данных Moodle на сервере пытаюсь получить доступ к FTP и выделить (подсветить) нужный мне файл
Ошибка в ненужном вызове целочисленной переменной, как функции: