删除字符串的前半部分,但保留javascript或jquery的后半部分

remove first half of string but keep second half in javascript or jquery

本文关键字:javascript jquery 后半部 保留 字符串 前半部 删除      更新时间:2023-09-26

我最近创建了自己的个人门户页面来取代iGoogle,因为它将在今年晚些时候关闭。一切正常,只是其中一个RSS提要输出的url如下:http://news.google.com/news/url?sa=t&fd=R&usg=AFQjCNFEguC5pqagsWkkW_y_EjYj9n1bMg&url=http://www.haaretz.com/news/diplomacy-defense/israel-to-un-replace-austrian-peacekeepers-withdrawn-from-golan-1.528305

当点击进入一个坏的url页面。如何删除url的前半部分,使其只包含从第二个http://

开始的部分?

很奇怪,但是这里的链接工作得很好…

刚刚意识到问题是,以某种方式,&号被变成实体,破坏了链接…

试试这个。一个通用的方法。

function queryString(parameter, url) {
    var a = document.createElement("a");
    a.href = url;        
    var loc = decodeURIComponent(a.search.substring(1, a.search.length));
    var param_value = false;
    var params = loc.split("&");
    for (var i = 0; i < params.length; i++) {
        param_name = params[i].substring(0, params[i].indexOf('='));
        if (param_name == parameter) {
            param_value = params[i].substring(params[i].indexOf('=') + 1)
        }
    }
    if (param_value) {
        return encodeURIComponent(param_value);
    }
    else {
        return "";
        //param not found
    }
}
var secondHTTP = queryString("url", 'http://news.google.com/news/url?sa=t&fd=R&usg=AFQjCNFEguC5pqagsWkkW_y_EjYj9n1bMg&url=http://www.haaretz.com/news/diplomacy-defense/israel-to-un-replace-austrian-peacekeepers-withdrawn-from-golan-1.528305');
var str = "http://news.google.com/news/url?sa=t&fd=R&usg=AFQjCNFEguC5pqagsWkkW_y_EjYj9n1bMg&url=http://www.haaretz.com/news/diplomacy-defense/israel-to-un-replace-austrian-peacekeepers-withdrawn-from-golan-1.528305";
var url = decodeURIComponent(str.split(/https?:/ig).pop());

将导致

"//www.haaretz.com/news/diplomacy-defense/israel-to-un-replace-austrian-peacekeepers-withdrawn-from-golan-1.528305"

var url = decodeURIComponent(str.match(/^http.+(http.+)/i)[1]);

将导致

"http://www.haaretz.com/news/diplomacy-defense/israel-to-un-replace-austrian-peacekeepers-withdrawn-from-golan-1.528305"

编辑:代码更新,jsFiddle添加


HTML:

<input id="schnitzel" type="text" value="http://www.google.com/http://www.real-foo.bar/" />
<input type="button" onclick="$('#schnitzel').val(window.firstHTTP($('#schnitzel').val()));" value="&raquo;" />
JavaScript:

window.firstHTTP = function (furl = "") {
    var chunked = furl.split("http://");
    return (chunked && chunked[2]) ? ("http://" + chunked[2]) : furl;
};

JS-Fiddle:

http://jsfiddle.net/Rm5bU/