我想从我拥有的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