javascript:从网址中删除特定文字

时间:2018-03-18 11:12:55

标签: javascript google-chrome url parameters

我正在尝试右键单击>按图搜索网站,但源图像仅为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

2 个答案:

答案 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规则对您有利的问题。

免责声明:我真的不是写正则表达式的最佳人选,所以如果我做错了/不正确的话,请纠正我。