我想從我擁有的URL中刪除/view-photo/P1270649
。我目前正在使用這樣做:replace()不會替換選定的文本
var pathname = window.location.pathname;
var replaced = pathname.replace('/view-photo/' + /([A-Z0-9]+)/g, '');
但是,沒有任何反應,當我嘗試使用這個。您可以see it in action on JSFiddle。我該如何解決這個問題?
我想從我擁有的URL中刪除/view-photo/P1270649
。我目前正在使用這樣做:replace()不會替換選定的文本
var pathname = window.location.pathname;
var replaced = pathname.replace('/view-photo/' + /([A-Z0-9]+)/g, '');
但是,沒有任何反應,當我嘗試使用這個。您可以see it in action on JSFiddle。我該如何解決這個問題?
您不能以這種方式組合字符串和正則表達式。做最簡單的事情將是完全放置在正則表達式:
var replaced = pathname.replace(/\/view-photo\/([A-Z0-9]+)/g, '');
發生了什麼事原來是正則表達式對象是被轉換成字符串,這實際上使你的replace()
是這個樣子:
var replaced = pathname.replace("/view-photo//([A-Z0-9]+)/g", '');
......它將搜索該字符串的字面版本,當然不在那裏。
建設正則表達式時,「文字失敗:
var replaced = pathname.replace('/view-photo/' + /([A-Z0-9]+)/g, '');
應該
var replaced = pathname.replace(/view-photo/([A-Z0-9]+)/g, '');
試試這個,
$(document).ready(function() {
var pathname = 'http://localhost/galleri/view-photo/P1270649';
var replaced = pathname.replace(/view-photo\/([A-Z0-9]+)/g, '');
// or you can use it like
//var replaced = pathname.replace(/\/view\-photo\/([A-Z0-9]+)/g, '');
alert(replaced);
});
I W建議另一種方法(純js)
var pathname = window.location.pathname;
var i = pathname.slice(0,pathname.indexOf('/view-photo'));
我得到一個錯誤,如果我使用'indexOf'所以我不能使用該功能 – Erik