首页 > 解决方案 > jQuery 正则表达式替换和切换

问题描述

我正在尝试制作一个 jQuery 替换功能,但似乎无法弄清楚。正则表达式不是我的强项。希望这里有人可以提供帮助。

我需要更改以下内容:

http://localhost/webshop/page/2/?_categories=music

至:

http://localhost/webshop/?_categories=music&_paged=2

到目前为止,这就是我所拥有的:

string.replace(/\/page\/([0-9].*?)\//, /&_paged=$1/);

这只是产生:

http://localhost/webshop/&_paged=2/?_categories=music

我需要某种前后锚来切换事物。我尝试了各种配置,但就是想不通。我阅读了各种帖子,但无法理解所有这些破折号和符号。有正则表达式专家吗?任何帮助将非常感激。

标签: jqueryregexreplace

解决方案


你可以在你的正则表达式中有多个组。只需使用它们。你快到了

'http://localhost/webshop/page/2/?_categories=music'
   .replace(/^(.+\/webshop)\/page\/(\d+)\/(.+)$/, '$1/$3&_paged=$2')

这将产生您正在寻找的确切字符串 - http://localhost/webshop/?_categories=music&_paged=2


推荐阅读