从字符串中提取参数的子字符串的值
Extract values of substring of parameters from string
我有一个形式的字符串
p1=v11&p1=v12&p2=v21&p2=v22&p2=v23&p3=v31 and so on
我想在javascript中获得p2的所有值的数组,例如,在本例中,它将是["v21"、"v22"、"v23"]。
我该怎么做?我需要使用正则表达式吗?
您可能想看看我为模仿PHP中的$_GET
函数而编写的JavaScript函数:
http://www.martinandersson.com/matooltip/js/ma_GET.js
谷歌这行的源代码:
returnMe[key] = $.parseJSON( decodeURIComponent(tmpArray[1]) );
我当前实现的问题是,任何已经存储的旧密钥的值都将被覆盖。您需要做的是检查键是否已经存在,如果已经存在,请读取旧值并将其存储回数组中,然后再将新值推送到同一数组中。
我引用的特定行使用JQuery将该值生成一个JavaScript对象。如果您不想将JQuery用于此功能,那么可以使用JSON.parse
或其他第三方库。
希望有帮助,如果你没有成功,给我写一条评论,我会回复你的。
试试这个:
var string = 'p1=v11&p1=v12&p2=v21&p2=v22&p2=v23&p3=v31';
var rawParams = string.split('&');
var params = [];
var param = '';
for (var i in rawParams) {
param = rawParams[i].split('=');
if ('p2' == param[0]) {
params.push(param[1]);
}
}
我在这里不推荐RegExp,因为这个问题很容易通过一个简单的for
循环来解决。
编辑:
为了任何仇恨者,下面是的工作示例:http://jsfiddle.net/j7sY6/1/
对于正则表达式解决方案:
var matchs = [];
var re = /p2=([^&]+)/g;
while (match = re.exec('p1=v11&p1=v12&p2=v21&p2=v22&p2=v23&p3=v31')) {
matchs.push(match[1]);
}
输出:
matches = ["v21", "v22", "v23"]
相关文章:
- 如何在Javascript中从字符串中提取某些单词
- innerHTML的子字符串可以在初始调用时提取吗
- 从字符串中提取年份的Javascript正则表达式
- 使用javascript从字符串中提取浮点数
- 如何使用另一个字符串作为模板从字符串中提取数据
- Regex模式匹配,从Javascript中的字符串中提取时间,结果出乎意料
- 正在从字符串中提取日期
- 使用gulp-angular gettext从JS文件中提取字符串不起作用
- 如何在系列数据中包含字符串以提取工具提示点格式
- 通过正则表达式从字符串中提取Url
- 正则表达式,用于从html格式的字符串中提取文本
- Javascript:如何通过Regexp从属性中提取字符串
- 如何删除“"使用javascript从字符串中提取字符
- 如何从由“”分隔的字符串中提取最后一个文本|&”;
- 从html标记格式的字符串中提取键值对
- 简单的javascript字符串提取
- 如何通过jquery或javascript从日期字符串提取日期格式
- 在Javascript中从字符串提取值到数组
- 如何将元组字符串提取到数据结构中
- 我如何从JavaScript中的URL字符串提取值