我有一个连接的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];