javascript - 使用正则表达式从 url 中删除查询字符串参数

标签 javascript jquery regex

我对正则表达式很陌生,需要从我们的 url 中删除一些内容

 http://mysite.blah/problem/smtp/smtp-open-relay?page=prob_detail&showlogin=1&action=smtp:134.184.90.18

我需要删除“?”中的所有内容继续,只剩下我:

http://mysite.blah/problem/smtp/smtp-open-relay

这是我们当前用于获取路由数据的正则表达式。例如,我可以获取“smtp”和“smtp-open-relay”(我们需要)。然而,有时我们的 url 会根据用户的来源而变化,从而附加导致我们当前的正则表达式崩溃的查询字符串参数。

// Retrieve the route data from the route
var routeData = /([0-9a-zA-Z_.-]+)\/([0-9a-zA-Z_.-]+)$/g.exec(route);

我需要它来忽略“?”中的内容上。

最佳答案

正则表达式可能比您需要的更多。

您可以执行以下操作来删除 ? 和所有内容(查询 字符串 + 哈希)在它之后:

var routeData = route.split("?")[0];

如果你真的只想去掉查询字符串,你可以保留 通过从 window.location 对象重建 URL 来获取哈希值:

var routeData = window.location.origin + window.location.pathname + window.location.hash;

如果你想要查询字符串,你可以用window.location.search读取它。

关于javascript - 使用正则表达式从 url 中删除查询字符串参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18366147/

相关文章:

javascript - 在函数完成或出现 DIV 后运行代码

javascript - Lodash:对对象数组进行排序,首先是字母,然后是数字

javascript - DIV属于元素,你怎么知道的?

jquery - IE8 - 在可拖动的 div 中带有 flash 的 iframe - 糟糕的重绘

Python - 从数据行中提取字段名称并重新格式化

javascript - 如何使用 jquery 以淡入淡出的方式随机显示图像?

javascript - 如何调用 iFrame 按钮的窗口 onunload 事件单击父页面和 iFrame 位于不同域的位置

javascript - 如何从 JQuery 对象获取 javascript 控件?

regex - apache .htaccess 重写不应包含 www

javascript - 如何修复此正则表达式以删除 JSLint 不必要的转义警告?