解析连接的javascript字符串

时间:2012-09-19 16:39:41

标签: javascript parsing variables concatenation split

我有一个连接的javascript字符串,我需要解析并匹配“& mediaID = 334380”,只要它在字符串中。我需要能够找到“& mediaID =”,然后写出=后面的数字,并将其结束于“

这个连续的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,该怎么办?有没有办法在一个正则表达式中匹配两者?

谢谢。

3 个答案:

答案 0 :(得分:0)

如果你确定它后面会跟一个&符号,你可以使用正则表达式找到它。

&mediaID=(\d+)&这样的模式应该足够了。然后您的号码将存储在捕获组中。

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

答案 1 :(得分:0)

正则表达式是这里的方式。

在您的控制台中尝试此操作:

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

此外,如果您想要分开编号,可以使用

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

[0-9] +表示从0到9的任何数字,至少出现一次。如果你将它包装在括号中,它会将它存储在响应中(顺便说一下,这是一个数组)。

如果有任何其他疑问,请告诉我。干杯!

答案 2 :(得分:0)

这应该有效:

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