Javascript正则表达式搜索,但不包括

时间:2013-06-25 07:22:57

标签: javascript regex

我遇到了问题,似乎无法解决问题。

我有一些这样的网址:

我只想删除\/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=并省略显示。 非常感谢任何帮助。

3 个答案:

答案 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=[^/]+

Regular expression image

Edit live on Debuggex