今日、私はURLの特定のパラメーターをJavaScriptに置き換える必要がありました。
次のようにコードコードをコピーします。
//分析URL
function parseurl(url){
var a = document.createelement( 'a');
A.href = url;
戻る {
出典:URL、
プロトコル:A.ProtoCol.Replace( ':'、 '')、
ホスト:A.HostName、
ポート:A.port、
クエリ:A.Search、
パラメーション:( function(){
var return = {}、
seg = a.search.replace(/^/?/、 '、' ').split('& ')、
len = seg.length、i = 0、s;
for(; i <len; i ++){
if(!seg [i]){続行;}
s = seg [i] .split( '=');
ret [s [0]] = s [1];
}
Retを返します。
})()、、、
ファイル:(a.pathname.match(///([^//?#]+)$/i)|| [、 ''] [1]、
ハッシュ:A.Hash.Replace( '#'、 '')、
パス:a.pathname.replace(/^([^//])/、 '/$ 1')、
相対:(a.href.match(/tps?:///////////] +(.+)/)|| [、 ''] [1] ,,
セグメント:a.pathname.replace(/^///、 '').split( '/')
};
}
// myurlの同じ名前のパラメーター値を置き換える
function tacelfurlparams(myrl、newparams){
/*
for(myrl.paramsのvar x){
for(newparamsのvar y){
if(x.tolowercase()== y.tolowercase()){){
myurl.params [x] = newparams [y];
}
}
}
*/
for(newparamsのvar x){
var hasmurlparams = false;
for(myrl.paramsのvar y){
if(x.tolowercase()== y.tolowercase()){){
myurl.params [y] = newparams [x];
hasinmyurlparams = true;
壊す;
}
}
//追加されたことが判明したパラメーター
if(!hasinmyurlparams){
myurl.params [x] = newparams [x];
}
}
var _retult = myurl.protocol + "://" + myurl.host + ":" + myurl.port + myurl.path + "?" ;;;;;;;;;;;;;;;;;;
for(myurl.paramsのvar p){
_result + =(p + "=" + myurl.params [p] + "&");
}
if(_result.substr(_result.length -1)== "&"){{
_result = _result.substr(0、_result.length -1);
}
ifrl.hash!= "){{
_result + = "#" + myurl.hash;
}
_result;を返します
}
//補助出力
関数w(str){
document.write(str + "<br>");
}
var myurl = parseurl( 'http://abc.com:8080/dir/index.html?id=255&m=hello#top'););
w
w
w
w( "myurl.query =" + myurl.query)// = '?
w( "myurl.params =" + myurl.params)// = object = {id:255、m:hello}
w
w( "myurl.segments =" + myurl.segments)// = array = ['dir'、 'index.html']]]
w
w
w( "myurl.source =" + myurl.source)// = 'http://abc.com:8080/dir/index.html?id=255&m=hello#top'
var _newurl = falterurlparams(myrl、{id:101、m: "world"、page:1、 "page":2});
w( "<br>新しいURLは:")
w(_newurl);