2013-11-29 2 views
0

Мой адрес выглядит так: ://example/example/.com. Я хочу удалить последнюю черту строки. Моя попытка до сих пор (но не работает):Строка заменить последнее появление символа слэша

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

Может кто-нибудь помочь мне?

+0

Конечно, вы должны замаскировать косую черту, в противном случае он сталкивается с разделителями. – CBroe

ответ

2

Вы должны бежать символ слэш в регулярном выражении литерала. Не Захват символы после последнего слеша до конца строки и использовать в замене:

s = s.replace(/\/([^\/]*)$/, '$1'); 

(Вам не нужно g флаг для этого, как вы знаете, что там никогда не больше, чем один матч .)

Демо: http://jsfiddle.net/Guffa/jkn52/


в качестве альтернативы, используйте poositive смотреть вперед, чтобы соответствовать слэш, которая не есть еще один слэш до конца строки:

s = s.replace(/\/(?=[^\/]*$)/, ''); 

Демо: http://jsfiddle.net/Guffa/jkn52/2/

0

Это немного многословен, но это работает:

var url = "//example/example/.com"; 
var slash_position = url.lastIndexOf('/'); 
url = url.substr(0, slash_position) + url.substr(slash_position+1); 
1
var str = "/1/2/3/4/5" 

var index = str.lastIndexOf("/"); 

var newStr = str.substr(0, index) + str.substr(index + 1); 

console.log(newStr); 

демо: http://jsfiddle.net/Jn9bm/

0

Попробуйте:

var s= someString.replace(/\//g, ""); 
Смежные вопросы