我正在尝试右键单击>按图搜索网站,但源图像仅为1个特定网站,因此网站只需要“{1}}”中的“images1 / image1”
var url = 'example.com/search/';
chrome.contextMenus.onClicked.addListener(function(info, tab){
chrome.tabs.create({
url: url + encodeURIComponent(info.srcUrl),
index: tab.index + 1
})
});
var onInitialize = function(){
chrome.contextMenus.create({
title: 'Search by image',
contexts: ['image'],
targetUrlPatterns: ['https://*/*', 'http://*/*'],
id: 'contextMenu'
});
};
此代码导致“example.com/search/ http://example.com/images1/img1.jpg” 它应该看起来像“example.com/search/images1/img1/ 我在网上找到的解决方案没有用,或者我无法使其工作,有什么帮助吗?的xD
答案 0 :(得分:1)
您可以使用类似的东西修剪线的末尾:
let line = 'image/image.jpg';
const suffix = '.jpg';
const result = line.substring(0, line.length - suffix.length);
console.log(result);

答案 1 :(得分:0)
这是一个适用于大多数地址的快速正则表达式。
// Paste this into regexr.com if you need help understanding exactly what it does.
let regex = /(https|http):\/\/((\d+\.?)+|((?:()|www.)[0-z]+\.[a-z]+))\//g;
let url = "https://examp1e.com/images/article1/img1.jpg";
url = url.replace(regex, "");
url = url.substring(0, url.lastIndexOf("."));
console.log(url);
// prints 'images/article1/img1'
上述正则表达式也将匹配数字IP,因此https://127.0.0.1/images/img1
将按预期工作。
现在,这个正则表达式不会与任何具有非拉丁字符的域匹配,但您可能不会遇到任何域。这都是使用90/10规则对您有利的问题。
免责声明:我真的不是写正则表达式的最佳人选,所以如果我做错了/不正确的话,请纠正我。