我对正则表达式很陌生,需要从我们的 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/