2012-12-05 110 views
2

我有這樣的:javascript split()的iframe屬性src?

<iframe src="http://999.999.99.99/reporting/report.php?rid=2&gid=6&ftid=0&fid=1000&gty=1&ltid=1&lid=1000&mode=7&width=220&sid=0&cc=666666,ffa401"> 

我越來越rid=&之間的值嘗試split()但它沒有得到我想要的東西。我只想要這兩者之間的價值。請幫忙。

這是我到目前爲止的代碼:

var source = 'http://999.999.99.99/reporting/report.php?rid=2&gid=6&ftid=0&fid=1000&gty=1&ltid=1&lid=1000&mode=7&width=220&sid=0&cc=666666,ffa401'; 
var rid = source.split('rid= &').pop(); 
alert(rid); 
+0

考慮發佈您實際嘗試過的代碼。也許你只是犯了一個小錯誤... – GargantuChet

回答

1

考慮使用一個簡單的正則表達式:

var rid = src.match(/rid=(\d+)/)[1]; 
+1

美麗!乾淨和重點! –

+1

但它會失敗,如果它包含'masterid = 4&rid = 2' –

+1

嗯,但它不會。無論如何,我確信OP可以讓它工作,如果沒有其他「更好」的答案。 – elclanrs

2

使用正則表達式

var str="http://999.999.99.99/reporting/report.php?rid=2&gid=6&ftid=0&fid=1000&gty=1&ltid=1&lid=1000&mode=7&width=220&sid=0&cc=666666,ffa401"; 
var re = /[?&]rid=([^&]+)/i; 
var part = str.match(re); 
console.log(part[1]); 
0

您可以使用此代碼:

var rid = src.substr(src.indexOf('rid') + 4).split('&')[0]; 
+1

'masterid = 4&rid = 2失敗# –

+0

@ shiplu.mokadd.im更正。 –

3

使用URL解析器描述了here

var parts = getUrlParts(url); 
var rid = parts.rid; 
1

你可以匹配一個正則表達式,但如果你想這樣做與分裂,嘗試:

var a = src.split("rid=")[1].split("&")[0]; 
+1

在'masterid = 4&rid = 2'上失敗 –

+0

是的,它的確如此。它打算爲給定的例子工作,乾淨和不安全;)。 – Krotton

+0

在回答所有問題之前,請確保其**安全**和**從不不安全** –

0

非常感謝球員,我真的可以在你們這裏​​算的SO。

到目前爲止,從您的答案,我已經使用match(),它工作得很好。真的,謝謝你們。 :)