Javascript 从url字符串中删除所有空值
我正在尝试从url字符串中删除所有空参数。我的url看起来像这样Javascript 从url字符串中删除所有空值,javascript,jquery,regex,Javascript,Jquery,Regex,我正在尝试从url字符串中删除所有空参数。我的url看起来像这样 http://localhost/wm/frontend/www/?test=&lol=1&boo=2 我的代码应该返回 http://localhost/wm/frontend/www/?lol=1&boo=2 但它没有,相反,它会回来 http://localhost/wm/frontend/www/?&lol=1&boo=2 这是我正在使用的正则表达式(“/(&?\w+=((?=$)(?=&)))/g,”)我知道我可以在第一
http://localhost/wm/frontend/www/?test=&lol=1&boo=2
我的代码应该返回
http://localhost/wm/frontend/www/?lol=1&boo=2
但它没有,相反,它会回来
http://localhost/wm/frontend/www/?&lol=1&boo=2
这是我正在使用的正则表达式(“/(&?\w+=((?=$)(?=&)))/g,”)我知道我可以在第一次替换后使用匹配“?&”的字符串,但我更愿意编辑我的正则表达式,所以它在一行代码中。有什么想法吗
这是我的例如,你可以说:
var s = 'http://localhost/wm/frontend/www/?test=&lol=1&boo=2&r=';
s = s.replace(/\w*=\&/g, '');
s = s.replace(/&\w*=$/g, '');
也就是说,删除一块字母
+=
+&
。然后,删除行末尾的字母(由$
指示)
对于您的输入,它将返回:
http://localhost/wm/frontend/www/?lol=1&boo=2
在或直接在此处查看:
var='s'http://localhost/wm/frontend/www/?test=&lol=1&boo=2&r=';
s=s.替换(/\w*=\&/g,”);
s=s.replace(/&\w*=$/g,”);
document.write
您可以使用此正则表达式替换:
/[^?&=]+=(?:&|$)|&[^?&=]+=(?=&|$)/g
并替换为:
""
试一试
var url=”http://localhost/wm/frontend/www/?test=&lol=1&boo=2&j=";
document.write(url.replace(/\w+=&|&\w+=$/g,”)
只要尝试调用本机的“replace”,它可以在第一个参数中与正则表达式一起使用
str.replace(regex, replace_str)
请查看此小提琴以查看正在运行的示例:这不会删除尾随
&x=
True,谢谢@AlexK。我刚刚更新了关于这个案例的内容。只是想知道,为什么您需要在客户端删除它,而不是在服务器端处理它?顺便说一句,这些URL首先是如何构建的?@A.Wolff,用于使用history.js进行过滤搜索
str.replace(regex, replace_str)