我有一个串联的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可能在或之前没有_,例如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的任何数字,至少出现一次。如果将其包装在括号中,它将存储在响应中(顺便说一下,它是一个数组)。
让我知道是否还有其他疑问。干杯!