javascript - 解析连接的 JavaScript 字符串

标签 javascript parsing variables concatenation split

我有一个串联的 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/

相关文章:

javascript - 访问值是否在对象内部

javascript - 三元运算符在 JavaScript 中是如何求值的?

java - 为什么未显示检索到的数据

C - 查找命令的完整路径

JavaScript 检查变量是否存在(已定义/初始化)

javascript - 仅更改多个命名嵌套路由之一

javascript - 如何在文本框中显示数字以跟踪打开的按钮数量

javascript - 为 SQLite3 生成一个 JavaScript SQL 解析器(使用 Lemon?ANTLR3?)

C++ 未解析的外部符号

java - 如何为 Action 监听器提供变量?