2016-05-04 124 views
0

我有以下網址JavaScript的正則表達式

http://www.test.info/?id=50&size=40 

我如何在JavaScript中的正則表達式的URL參數的值。我需要大小的值,也需要URL沒有&?

只有

http://www.test.info/?id=50 

感謝

+0

無不是id參數我需要的值之後&像大小= 40 –

+0

和需要的URL,而不&像http://www.test.info /?id = 50 –

+0

這就是你需要的,看看那個答案 –

回答

0

考慮使用split代替正則表達式:

var splitted = 'http://www.test.info/?id=50&size=40'.split('&'); 
var urlWithoutAmpersand = splitted[0]; 
// now urlWithoutAmpersand => 'http://www.test.info/?id=50' 
var sizeValue = splitted[1].split('=')[1] * 1; 
// now sizeValue => 40 
+0

不回答問題。你的解決方案既不是正則表達式,也不提供大小參數的值。 –

+0

@SebastienDaniel我編輯了我的答案,但無論如何,建議採取不同的方式做它不是好的嗎? –

+0

你的答案比較好,但如果添加了任何附加參數,它會中斷。是的,可以提供各種解決方案......如果他們回答這個問題的話。 –

0

就用這個作爲你的正則表達式

size.*?(?=&|$) 

下面是一些代碼,你可以使用

var re = /size.*?(?=&|$)/g; 
var myArray = url.match(re); 
console.log(myArray); 

你也可以不喜歡它這個:

var re = new RegExp("size.*?(?=&|$)", "g"); 
+0

,它也會抓取大小參數後面的任何東西,甚至是額外的參數。 –

+0

你現在在想什麼? –

+0

好得多。我會補充說,「大小」匹配必須以?|&開頭,因爲你不想從url部分的匹配 –

0

這是您可以使用的正則表達式模式。

^(.+)&size=(\d+) 

第一組將是'&'符號之前的URL。第二組將是大小參數的值。這個假設id總是在大小之前,並且只有兩個參數:id和size。