分組我想使用字符串的正則表達式這樣操作:這樣的比賽在新的RegExp對象
string = '?order=age'
var order_regex_asc = /([&?])order=([a-z])/g;
new_string = string.replace(order_regex_asc, '$1order=-$2');
// The code above will result to "?order=-age"
我知道上面的代碼將工作,就是那種邏輯的,我需要
然而如該命令的
order=([a-z])
的值被認爲是一個可變不是正則表達式的一部分。我無法找到一個方法來插入一個正則表達式語句的變量,所以我嘗試下面
data = 'age'
string = 'http://example.com?order=age&order=color&order=gender'
order_regex_asc = new RegExp('[&?]order=' + data, 'g')
new_string = string.replace(order_regex_asc, 'Hi I am a new string');
代碼現在我對這個代碼的問題是我無法實現匹配分組。我不知道下一步該做什麼。我只想改變'?order = age'至'?order = -age'並記住該訂單的價值是動態的。它可以是身高,體重等
Plunkr:https://plnkr.co/edit/nE6MK7PWb54GkXOdIojn?p=preview
請記住,如果你點擊任何按鈕不止一次,它應該只是在GET參數發揮推杆和上去除一個連字符之間值 '年齡'
'string.replace(/ order =([az] +)/ i,' - $ 1')' – Tushar
我需要[az]是一個變量,想象一下,我將點擊一個按鈕並添加一個連字符選擇變量 –
一個更好的方法是使用'window.URL'功能而不是RegExp。我們通常已經意識到在項目中使用正則表達式有多糟糕。即使RegExp似乎解決了所有問題。 https://developer.mozilla.org/en-US/docs/Web/API/URL –