如何重写URL的一部分?
How to rewrite part of a URL?
我在我的网站上使用 lightbox2,我希望我的观众下载图片。该按钮有效,它链接到 /view/directory/image.jpg 并且下载按钮仅显示图像。在PHP我做了一个下载图片的脚本,在mysql设置download+1,我唯一不太擅长的是JS。
lightbox2 中的当前 JS 代码是:
this.$lightbox.find('.lb-download').on('click', function (e) {
window.open(e.target.href)
});
链接到 /view/directory/image.jpg 因为 href 会显示图片。
我希望 lb-download 按钮转到 /download/directory/image.jpg,我已经可以下载了,只是不是window.open 和 preg_replace 部分在 JS 中。
url=e.target.href;
url=url.split("/");
url[0]=url[0]+"/download";
url.join("/");
window.open(url);
你得到了包含 "domain.com/view/directory/image.jpg" 的e.target.href
,你需要它包含 "domain.com/download/directory/image.jpg"所以你必须这样做:
JS:
let dwHref = e.target.href;
dwHref = dwHref.split("/");
dwHref[1] = "download";
dwHref.join("/");
window.open(dwHref);
这会将 e.target.href
转换为数组,然后将 "view" 交换为 "download"(数组中的位置 1),然后打开 window...
您可以简单地用 download
替换单词 view
通过 运行 以下 -
var urlToBeOpened = e.target.href.replace('view', 'download');
window.open(urlToBeOpened);
您可以将url中的部分替换为查看到下载,如下所示:
this.$lightbox.find(".lb-download").on("click", function (e) {
window.open(e.target.href.replace("/view/", "/download/"))
});
解决这个问题的另一种方法是使用模式和替换函数
制作类似
的图案
var pattern = /view/ig;
然后假设我们有一个像
这样的字符串
var a = "domain.com/view/directory/image.jpg";
现在只需使用替换,我们就可以替换 URL
中的任何单词
a = a.replace( pattern, "download" );
这里有一个例子https://jsfiddle.net/mhadaily/0zpekx6t/1/
注意:您可以轻松地将 a 更改为 e.target.href 并对其应用替换功能。
注意:上面模式中的 i 标志表示单个,g 标志使该全局应用。
更多信息请阅读:https://developer.mozilla.org/en/docs/Web/JavaScript/Guide/Regular_Expressions
我在我的网站上使用 lightbox2,我希望我的观众下载图片。该按钮有效,它链接到 /view/directory/image.jpg 并且下载按钮仅显示图像。在PHP我做了一个下载图片的脚本,在mysql设置download+1,我唯一不太擅长的是JS。
lightbox2 中的当前 JS 代码是:
this.$lightbox.find('.lb-download').on('click', function (e) {
window.open(e.target.href)
});
链接到 /view/directory/image.jpg 因为 href 会显示图片。 我希望 lb-download 按钮转到 /download/directory/image.jpg,我已经可以下载了,只是不是window.open 和 preg_replace 部分在 JS 中。
url=e.target.href;
url=url.split("/");
url[0]=url[0]+"/download";
url.join("/");
window.open(url);
你得到了包含 "domain.com/view/directory/image.jpg" 的e.target.href
,你需要它包含 "domain.com/download/directory/image.jpg"所以你必须这样做:
JS:
let dwHref = e.target.href;
dwHref = dwHref.split("/");
dwHref[1] = "download";
dwHref.join("/");
window.open(dwHref);
这会将 e.target.href
转换为数组,然后将 "view" 交换为 "download"(数组中的位置 1),然后打开 window...
您可以简单地用 download
替换单词 view
通过 运行 以下 -
var urlToBeOpened = e.target.href.replace('view', 'download');
window.open(urlToBeOpened);
您可以将url中的部分替换为查看到下载,如下所示:
this.$lightbox.find(".lb-download").on("click", function (e) {
window.open(e.target.href.replace("/view/", "/download/"))
});
解决这个问题的另一种方法是使用模式和替换函数
制作类似
的图案var pattern = /view/ig;
然后假设我们有一个像
这样的字符串var a = "domain.com/view/directory/image.jpg";
现在只需使用替换,我们就可以替换 URL
中的任何单词a = a.replace( pattern, "download" );
这里有一个例子https://jsfiddle.net/mhadaily/0zpekx6t/1/
注意:您可以轻松地将 a 更改为 e.target.href 并对其应用替换功能。
注意:上面模式中的 i 标志表示单个,g 标志使该全局应用。
更多信息请阅读:https://developer.mozilla.org/en/docs/Web/JavaScript/Guide/Regular_Expressions