解析串联javascript字符串

解析串联javascript字符串,javascript,parsing,variables,concatenation,split,Javascript,Parsing,Variables,Concatenation,Split,我有一个连接javascript字符串,我需要解析并匹配字符串中的任何位置的“&mediaID=334380”。我需要能够找到“&mediaID=,然后写出=后面的数字,并将其结束” 此串联变量中只有一个“&mediaID=334380”实例,但它可能位于字符串的不同部分 var vidPlyrVars = "vidPlayerSchool=" + vid_partner + "&vidPlayerWd=" + vid_width + "&vidPlayerHt=" +

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

此串联变量中只有一个“&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=可能在字符串中的不同位置

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可能有也可能没有uu-before-ID,比如media和mediaID,那么该怎么办?有没有办法在一个正则表达式中同时匹配这两个ID


谢谢。

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

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


正则表达式就是解决这个问题的方法

在控制台中尝试以下操作:

"asdasdasdasdasd&mediaID=645654654&asdasdasdasd=asdasdasdasdasd".match(/&mediaID=[0-9]+/)
另外,如果您想单独使用数字,可以使用

"asdasdasdasdasd&mediaID=645654654&asdasdasdasd=asdasdasdasdasd".match(/&mediaID=([0-9]+)/)
[0-9]+表示从0到9的任何数字,至少出现一次。如果用括号括起来,它将存储在响应中(顺便说一下,这是一个数组)

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

这应该可以:

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

你能不能展示你正在使用的完整字符串的例子呢?考虑一下使用正则表达式。太棒了!非常感谢每一个回复的人。看起来,和一些正则表达式匹配是我要走的路。我只是在玩弄它,只是没法得到它。谢谢!如果中介可能有,也可能没有。e ID,如media_ID和media ID。是否有方法在一个正则表达式中同时匹配这两个?当然!“asdasdasd&media_ID=645654654&asdasdasd=asdasdasd”。match(/&media_?ID=[0-9]+/)表示?是可选的。此外,如果需要匹配多个,您应该为全局修改器添加“g”,如/regex/g和“i”用于区分大小写的匹配。当我在控制台中运行时,它会为我返回“null”。ID部分也是唯一可能是小写或UPPERCase的部分。这是(/)媒体吗_‌​?ID=[0-9]+/i)是否是合适的正则表达式?非常感谢。