【发布时间】:2025-11-25 09:25:02
【问题描述】:
我想解析一些具有以下格式的网址:-
var url ="http://www.example.com/cooks/cooking-dress-wine/~no-order/pr?p%5B%5D=sort%3Dfeatured&sid=bks%2C43p&mycracker=ch_vn_clothing_subcategory_Puma&ref=b41c8097-8efe-4acf-8919-0fa81bcb590a"
所有网址的域名和其他部分不必相同,它们可以有所不同,即我正在寻找一个通用的解决方案。
基本上我想去掉所有其他的东西,只得到一部分:
/cooks/cooking-dress-wine/~no-order/pr?p%5B%5D=sort%3Dfeatured&sid=bks%2C43p
我想用 JavaScript 和正则表达式来解析这个
我是这样做的:
var mapObj = {"/^(http:\/\/)?.*?\//":"","(&mycracker.+)":"","(&ref.+)":""};
var re = new RegExp(Object.keys(mapObj).join("|"),"gi");
url = url.replace(re, function(matched){
return mapObj[matched];
});
但它返回这个
http://www.example.com/cooks/cooking-dress-wine/~no-order/pr?p%5B%5D=sort%3Dfeatured&sid=bks%2C43pundefined
我在哪里做的不对?还是有其他更简单的解决方案?
【问题讨论】:
标签: javascript regex url