解析连接 JavaScript 字符串



我有一个连接的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= 可能位于字符串中的不同位置。

*也。如果媒体 ID 前面可能有也可能没有 _,例如 media_ID 和媒体 ID,该怎么办?有没有办法在一个正则表达式中匹配两者?

谢谢。

正则表达式是这里要走的路。

在控制台中尝试此操作:

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

另外,如果您希望将数字分开,则可以使用

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

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

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

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

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

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

这应该有效:

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

最新更新