2014-06-04 2 views
2

Возможно ли заменить элемент $n на определенную строку? В моем примере элемент $1.

Например, я хочу заменить последний элемент URL-адреса "http://my.domain.com/sub/file.extension" с моей строкой "other.other".

мое регулярное выражение что-то вроде этого: /([^/]+)\.extension$

Но он также заменяет косую черту перед «файл».

Вот полный пример:

var url = "http://my.domain.com/sub/file.extension"; 
var replace = "other.other"; 
var regex = new RegExp("/([^/]+)$"); 
console.log(url.replace(regex,replace)); 

Я знаю, что я мог бы предварять слэш в моем заменить так: var replace = "/other.other"; но я хочу другой подход, который я мог бы использовать в других проектах.

Короче говоря, я ищу возможность заменить что-то без разделительного символа для замены.

PS: Я прочитал что-то о положительном взгляде, но я не могу заставить его работать. И я знаю о this Post и this Post, но это не то, что я ищу.

+0

Просто для объяснения: Я удалил свой ответ, как и другие ответы, которые были добавлены в то время как I неподвижная шахта. –

ответ

1

Небольшое изменение было сделано в коде .try ниже код и проверить

var url = "http://my.domain.com/sub/file.extension"; 
var replace = "other.other"; 
var regex = new RegExp("([^/]+)$"); 
console.log(url.replace(regex,replace)); 
+0

какая небольшая косая черта может измениться .... Спасибо! – Nano

0
var url = "http://my.domain.com/sub/file.extension"; 
url = url.split("/"); 
url.pop(); 
url.push("other.other"); 
url = url.join("/"); 
console.log(url); 

enter image description here

+0

'url.substring (0, url.lastIndexof ('/') + 1) + replace' немного компактнее и делает то же самое. OP заявила, что ему нужно регулярное выражение по некоторым причинам. –

Смежные вопросы