我有一个串联的 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= 可能位于字符串中的不同位置。
*还有。如果 mediaID 之前可能有也可能没有 _,例如 media_ID 和 mediaID,该怎么办?有没有一种方法可以在一个正则表达式中匹配两者?
谢谢。
最佳答案
正则表达式就是解决这个问题的方法。
在控制台中尝试一下:
"asdasdasdasdasd&mediaID=645654654&asdasdasdasd=asdasdasdasdasd".match(/&mediaID=[0-9]+/)
此外,如果您想要单独的号码,可以使用
"asdasdasdasdasd&mediaID=645654654&asdasdasdasd=asdasdasdasdasd".match(/&mediaID=([0-9]+)/)
[0-9]+ 表示 0 到 9 之间的任意数字,且至少出现一次。如果您将其括在括号中,它会将其存储在响应中(顺便说一句,这是一个数组)。
如果还有任何其他疑问,请告诉我。干杯!
关于javascript - 解析连接的 JavaScript 字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12499132/