javascript - 根据值计数
问题描述
鉴于此网址
https://www.rositarococo.com/gracias.html?hwA-qty-andrea-cobre=2&hwA-qty-sol=1&hwA-qty-valen=1&hwA-qty-mo%C3%B1o-2=1&entry.1471599855=38-andrea-cobre%2C%2037-mo%C3%B1o-2%2C%2036-sol%2C%2036-valen%2C%20&entry.1460904554=sebastian%20flichtentrei&entry.53830725=1156566&entry.1465946249=sflich86%40gmail.com&entry.978809450=TARJETA%20DE%20CR%C3%89DITO&entry.951592426=lavalle%20322&entry.1743418466=ramos%20mejia&entry.59648134=bs%20as&entry.1005165410=1704&entry.541001873=32420573&entry.17650825=A%20DOMICILIO&entry.1209868979=https%3A%2F%2Fwww.rositarococo.com%2F&fvv=1&fbzx=5661184097173102736&pageHistory=0
有几个由不同名称给出的参数包含“数量”
我希望能够用“数量”计算每个参数的值
在这个例子中
hwA-qty-andrea-cobre=2
hwA-qty-sol=1
hwA-qty-valen=1
hwA-qty-mo%C3%B1o-2=1
结果将是:5
我不知道如何选择所有包含“数量”的参数值
要访问我使用的 URL 参数:
var getUrlParameter = function getUrlParameter(sParam) {
var sPageURL = window.location.search.substring(1),
sURLVariables = sPageURL.split('&'),
sParameterName,
i;
for (i = 0; i < sURLVariables.length; i++) {
sParameterName = sURLVariables[i].split('=');
if (sParameterName[0] === sParam) {
return sParameterName[1] === undefined ? true : decodeURIComponent(sParameterName[1]);
}
}
};
但后来我不知道如何访问所有包含 qty 的参数并将所有值汇总到一个变量中,也许使用通配符?
var qtyparameter = getUrlParameter('*qty*');
解决方案
使用正则表达式和.test()
方法。
由于要获取所有匹配的参数,所以不能在参数匹配时立即返回,需要返回一个包含所有值的数组。
function getMatchingUrlParameters(regexp) {
var sPageURL = window.location.search.substring(1),
sURLVariables = sPageURL.split('&'),
sParameterName,
i,
results = {};
for (i = 0; i < sURLVariables.length; i++) {
sParameterName = sURLVariables[i].split('=');
if (sParameterName[0].test(regexp)) {
results[sParameterName[0]] = decodeURIComponent(sParameterName[1]);
}
}
return results;
}
然后你可以打电话
var qtyParams = getMatchingUrlParameters(/-qty-/);
结果将是:
{
"hwA-qty-andrea-cobre": "2",
"hwA-qty-sol": "1",
"hwA-qty-valen": "1",
"hwA-qty-mo%C3%B1o-2": "1"
}
然后,您可以将属性的所有值相加。
推荐阅读
- google-apps-script - 如何使用谷歌应用脚本在饼图中设置颜色
- azure - 将平面文件导入 Azure DevOps 源代码控制
- python - 我可以使用 Tkinter 文件对话框保存 Pandas DataFrame 吗?
- javascript - 突出显示 HTML 页面中的重复单词
- google-apps-script - Apps 脚本将新行和值插入到 Google 表格中。但是,如果您提交太快,它会以某种方式跳过行
- c# - 在工具栏中的调试按钮附近添加一个扩展按钮
- r - 如何使用 highchart() 和列表更正空白绘图区域
- wordpress - Woocommerce 产品的 WP_Query 中的 Orderby 价格
- discord.js - 如何禁止在某些角色上使用命令
- r - R包'TranslateR'不显示翻译结果(2)