2017-11-04 40 views
1

我有這個字符串:正則表達式來消除一個字

var chain = "providerId=12$familyId=123&brandId=1122112$officeId=21&"; 

我需要做的是刪除某個詞用正則表達式的方法。

實施例:

var word = "familyId"; 
var newChain = deleteParam(chain, word); 
console.log(newChain); 

結果= 「providerId = 12 $ brandId = 1122112 $ officeId = 21 &」;

刪除:FAMILYID = 123 &

我試圖做的方法在下面的方法,但它不工作:

function deleteParam(chain, word) { 
    var exp = new RegExp(param, "=[0-9]&"); 
    var str = chain.replace(exp, ""); // Delete 
    return str 
} 

請,我需要你們的幫助,我可以不要使這個方法有效,因爲我不太瞭解如何構建正則表達式。

對不起所有,英語不是我的母語

非常感謝你的所有。

回答

0

您可以使用類似這樣new RegExp(param + "=\[^&]+")

下面是一個例子:

var chain = "providerId=12$familyId=123&brandId=1122112$officeId=21&"; 
 
var toRemove = "familyId"; 
 
var pattern = new RegExp(toRemove + "=[^&]*&"); 
 
var newChain = chain.replace(pattern, ""); 
 
console.log(newChain);

如果您正在尋找處理GET請求的搜索參數是更好地使用這樣的圖案(&|\?)*parameterName=[^&]*

+0

謝謝你ve非常感謝您的迴應,它的工作令人滿意。但是,請您能更好地向我解釋最後的評論,並且有請求,這非常有趣。 – HenryGuillen17

+0

@ HenryGuillen17我不確定你想要做什麼,但是你想要處理的字符串看起來類似於HTTP GET請求查詢。如果是這樣的話,請在我的回答結尾處使用正則表達式,因爲它更好(不會在結果字符串中留下額外的&&或??字符)。 – Titus

+0

我真的需要上面的函數來消除一個get參數,它已經解決了,但是我發現下面有趣的是看到另一種做事的方式。不過,非常感謝,現在我可以安然入睡 – HenryGuillen17