我想从已有的URL中删除/view-photo/P1270649。我目前正在使用它来这样做:

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", '');


...将搜索该字符串的文字版本,当然不存在。

10-07 17:54