我遇到了问题,似乎无法解决问题。
我有一些这样的网址:
我只想删除\/filter=(\w+)(\/?)
,因此只有filter=show
但不包含下一个正斜杠。 filter
也只是一个变量。
我尝试过:
var url = 'http://www.example.com/test/filter=show/results=true';
var param = 'filter';
var oldParam = '\/('+param+'=(.*?))';
var reg = new RegExp(oldParam, "gi");
var result = url.replace(reg, "/");
这仅删除filter=
并省略显示。
非常感谢任何帮助。
答案 0 :(得分:2)
尝试向前看
'http://www.example.com/test/filter=show/results=true'.replace(/\/filter=.*?(?=\/)/, '')
例如:
var url = 'http://www.example.com/test/filter=show/results=true';
var param = 'filter';
var oldParam = '\\/'+param+'=.*?(?=\\/)';
console.log(oldParam)
var reg = new RegExp(oldParam, "gi");
var result = url.replace(reg, "");
console.log(result)
演示:Fiddle
答案 1 :(得分:2)
试试吧
var url = 'http://www.example.com/test/filter=show/results=true';
var result = url.replace(/filter=([^&\/]*[/]?)/gi, "");
alert(result);
=================更新==================
var url = 'http://www.example.com/test/filter=show/results=true';
var params = 'filter';
params = params+'=([^&\/]*[/]?)'
var reg = new RegExp(params, "gi");
var result = url.replace(reg, "");
alert(result);
答案 2 :(得分:1)
这应该符合您的需求:
var url = "http://www.example.com/test/filter=show/results=true";
var param = "filter";
var pattern = "/" + param + "=[^/]+";
var regex = new RegExp(pattern, "gi");
var result = url.replace(regex, "");
document.write(result);
打印:
http://www.example.com/test/results=true
说明:
/filter=[^/]+