2

我有以下网址

example.com/p/deals&post_id=3

其中 post id 是一个获取变量。我想清理 url 字符串,返回的结果应该是

example.com/p/deals

我一直在尝试使用 JavaScript .replace,但由于 url 末尾的 get 变量,似乎不起作用。我将如何构建一个正则表达式来排除这个子字符串。

4

2 回答 2

3

为此不需要正则表达式。只需拆分字符串并从数组中取出第一个字符串:

var str = "example.com/p/deals&post_id=3";
var san = str.split("&")[0];

这是一个工作小提琴

于 2013-02-05T11:23:40.333 回答
2

要匹配包含第一个 & 之后的所有字符,您将使用该模式

\&(.*)

并简单地替换为空字符串。

JS将是

var urlString = "example.com/p/deals&post_id=3";
var searchP = "\&(.*)" ;
var replaceP = "" ;
var rEx = new RegExp( searchP, urlString ) ;
var replacedText = sourceText.replace( rEx, replaceP ) ;
于 2013-02-05T11:41:39.733 回答