You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

JavaScript字符串替换:替换任意位置per_page参数数值

解决字符串中任意位置的per_page数值替换问题

嘿,这个需求太常见啦!既然参数顺序不固定,那正则表达式绝对是你的最佳选择——不用管per_page在字符串里的位置,精准定位替换数值就行。

核心思路

我们要匹配字符串中独立的per_page=数字片段,然后把数字替换成你想要的新值。关键是要确保只匹配作为独立参数的per_page,不会误伤到类似xper_page=100这种带前缀的字符串。

具体实现(以Python为例)

基础版(适用于无歧义场景)

如果你的字符串里不会有类似xper_page这种混淆项,用简单的正则就能搞定:

import re

# 原始字符串,per_page位置随便放都可以
original_str = "filter=active&per_page=100&sort=desc"
# 你想要替换的新数值
new_per_page = 60

# 替换逻辑:匹配per_page=后面的所有数字,替换成新数值
modified_str = re.sub(r'per_page=\d+', f'per_page={new_per_page}', original_str)

print(modified_str)
# 输出:filter=active&per_page=60&sort=desc

严谨版(避免误匹配)

如果担心有类似xper_page=100这种干扰项,就给正则加边界校验,确保per_page是一个独立的URL参数:

import re

original_str = "xper_page=100&per_page=100&another_param=test"
new_per_page = 80

# 正则解释:
# (?<=&|^) 确保前面是&或者字符串开头,保证per_page是参数的起始
# (?=&|$) 确保后面是&或者字符串结尾,保证per_page是参数的结束
modified_str = re.sub(r'(?<=&|^)per_page=\d+(?=&|$)', f'per_page={new_per_page}', original_str)

print(modified_str)
# 输出:xper_page=100&per_page=80&another_param=test

其他语言适配

这个逻辑在其他语言里也通用,比如JavaScript:

const originalStr = "per_page=100&param=foo";
const newPerPage = 40;
const modifiedStr = originalStr.replace(/(?<=&|^)per_page=\d+(?=&|$)/g, `per_page=${newPerPage}`);
console.log(modifiedStr); // 输出:per_page=40&param=foo

不管per_page在字符串的开头、中间还是结尾,这个方法都能精准替换数值,完全不用依赖参数顺序~

内容的提问来源于stack exchange,提问作者Toniq

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.20 10:06:12