2012-09-19 56 views
1

我有一個串聯的JavaScript字符串,我需要解析並匹配「& mediaID = 334380」,無論它落在字符串中哪裏。我需要能夠找到「& mediaID =」,然後寫出下面的=數字和有它結束的「解析串聯的JavaScript字符串

這串接VAR將只有一次的情況下」,在它& mediaID = 334380" ,但它可能是在串的不同部分。

var vidPlyrVars = "vidPlayerSchool=" + vid_partner + "&vidPlayerWd=" + vid_width +  "&vidPlayerHt=" + vid_height + "&"; 
vidPlyrVars += "vidURL=" + vid_url + "&imgURL=" + img_url + "&color_button_bkg=0d141a" + "&color_controls_bkg=0d141a" + "&mediaID=334380" + "&share_buttons=on" + "&vip_url=http://somesite.com/all/index.html" + "&"; 
vidPlyrVars += "vidTitle=" + escape("some title") + "&"; 
vidPlyrVars += "autoplay=off&autoplay_refresh=always&full_screen=on&ad_prerolls=off&"; 
vidPlyrVars += "list_type=none&"; 

我只需要後& mediaID =無論多少數量有。我曾試圖分裂,但它不會工作,因爲& mediaID =號碼可能位於字符串中的不同位置。

*另外。如果mediaID可能有或沒有_之前的ID,例如media_ID和mediaID,該怎麼辦?有一種方法可以在一個正則表達式中匹配嗎?

謝謝。

+0

你能不能展示,或者你正在使用的,滿弦的例子嗎? –

+0

考慮使用正則表達式。 –

回答

0

正則表達式是去這裏的路。

試試這個在您的控制檯:

"asdasdasdasdasd&mediaID=645654654&asdasdasdasd=asdasdasdasdasd".match(/&mediaID=[0-9]+/) 

另外,如果你要的號碼separatedly,您可以使用

"asdasdasdasdasd&mediaID=645654654&asdasdasdasd=asdasdasdasdasd".match(/&mediaID=([0-9]+)/) 

[0-9] +指數從0到9,至少發生一次。如果你用圓括號包裝它,它會將它存儲在響應中(順便說一下,這是一個數組)。

讓我知道是否有任何其他疑問。乾杯!

+0

太棒了!非常感謝所有回覆的人。看起來像.match和一些正則表達式是要走的路。我正在愚弄它,但只是無法得到它。謝謝! – Justin

+0

如果mediaID可能有也可能沒有_之前的ID,例如media_ID和mediaID,該怎麼辦?有一種方法可以在一個正則表達式中匹配嗎? – Justin

+0

當然! 「asdasdasdasdasd&media_ID = 645654654&asdasdasdasd = asdasdasdasdasd」.match(/&media_?ID = [0-9] + /) The _?意味着_是可選的。此外,如果您需要匹配多個匹配項,則應爲全局變體添加「g」,例如/ REGEX/g和「i」以進行大小寫敏感的匹配。 – fsodano

0

如果您確定知道後面會跟着一個&符號,您可以使用正則表達式來找到它。

&mediaID=(\d+)&這樣的模式應該就足夠了。然後你的號碼將被存儲在一個捕獲組中。

http://www.javascriptkit.com/javatutors/redev2.shtml

0

這應該工作:

var number = str.match(/&mediaId=(\d+)/)[1];