2015-11-04 62 views
-3

我有一個查詢字符串,我需要從中刪除某個參數。例如,我的查詢字符串可能是"?name=John&page=12&mfgid=320",我需要從中刪除「頁面」參數,並以"?name=John&mfgid=320"結束。我不能假定「頁面」參數是其他參數或沒有其他參數。複雜的JavaScript字符串刪除/替換

我所有使用JavaScript函數/正則表達式的嘗試都失敗了,所以我真的可以用一把手來實現這個功能。謝謝。

+4

也許你可以分享你以前的嘗試,以便我們不重複你的努力? [MCVE]。 –

+2

以失敗的嘗試幽默我們。 – ergonaut

+0

也許你應該使用一個知道如何解析和構建查詢字符串的庫。 –

回答

0

這是很容易的......這只是/page=\d+&?/

var uri = '?name=John&page=12&mfgid=320'; 
uri = uri.replace(/page=\d+&?/,''); 
+0

'var uri ='?name = John&otherpage = abc&mfgid = 210';'哦,親愛的。 –

+0

我沒有任何其他參數,裏面有單詞「page」。如果我這樣做,我會說這是一個要求。所以,@ Reeno的答案能做到這一點。 –

0

您可以使用:

uri = uri.replace(/[?&]page=[^&\n]+$|([&?])page=[^&\n]+&/g, '$1'); 

RegEx Demo

我們需要使用交替覆蓋存在的所有案件的查詢參數。查看我的演示,瞭解所有測試用例。