2017-03-25 8 views
0

urlクエリ文字列値をURLから変更したい。 例: 私はこのURLを持っています:www.example.com/site-post/234-1993/ 234はperson_idと1993 person_yearです。書き換えルールなしのURLは次のようになります。私は、ボタンを押すと www.example.com/site-post/?person_id=234&person_year=1993Jqueryを使用してURL内のクエリ文字列値を置き換える方法

は私が値234と1993

を変更したい、私は非友好的なURLのために働く機能を持っています。私はこの関数を呼び出した場合

function update_permalink(uri, key, value) { 
    var re = new RegExp("([?&])" + key + "=.*?(&|$)", "i"); 
    var separator = uri.indexOf('?') !== -1 ? "&" : "?"; 
    if (uri.match(re)) { 
     return uri.replace(re, '$1' + key + "=" + value + '$2'); 
    } 
    else { 
     return uri + separator + key + "=" + value; 
    } 
} 

それはwww.example.com/site-post/234-1993/ to www.example.com/site-post/234-1993/?person_id=234&person_year=1993

私のURLを変更します、私は唯一の値を変更し、クエリ文字列で現在のURLを追加することなく、URLを変更する方法を知っている人はありますか?

+0

のjQueryはJavaScriptの – Webbanditten

+1

ないあなたの質問への答えですが、あなたはあなたがここで何をしているか知っている100%確信していますか?これは、サーバー側のURL書き換えを使用したほうがよいかもしれません。 –

答えて

0

あなたはこれをしたい理由は、私は本当にわからないんだけど、このコードは動作するはずです:

function update_permalink(uri, param1, param2) { 
    var re = uri.match(/([^\?]*)\/site-post\/(\d*)-(\d*)\//); 
    if (uri.match(/([^\?]*)\/site-post\/(\d*)-(\d*)\//)){ 
    uri = uri.replace(re[2],param1); 
    uri = uri.replace(re[3],param2); 
    return uri; 
    } 
} 

そのようなを使用します。

update_permalink("www.example.com/site-post/234-1993/",112,113); 

結果:

www.example.com/site-post/112-113/ 
1

このコードを関数に置き、チェックします。

if (window.location.href.indexOf("234") > 0){ 
 
    var newUrl = window.location.href.replace("234-1993/", "?person_id=234&person_year=1993"); 
 
    window.history.replaceState({}, '', newUrl); 
 
}

関連する問題