0

如果这是重复的,我深表歉意,但我已经搜索了 3 个小时,但找不到任何不只处理单一模式的东西。

我在 URL 中使用了尺寸参数(即 ...media.php?sid=200x100&mid=... 其中 200 是宽度,100 是高度)。还有其他参数可能/可能不包括其他数字(即 UUID),但对于此任务并不重要,但不应影响模式匹配。

我需要做的是匹配 'sid=###x###' 部分只是为了替换它。### 应该支持从 1 到 99999 范围内的可变长度数字。

到目前为止,我已经尝试了很多模式,并且怀疑有人可能会知道这一点,所以我不会列出我所有的尝试,但这是我正在使用的基本代码:

var oldSid = new RegExp('sid=[0..99999]x[0..99999]');
var newSid = 'sid=500x500';
var newUrl = oldUrl.replace(oldSid, newSid);

您可以提供任何帮助以填补空白,我们将不胜感激!

4

2 回答 2

2

使用正则表达式sid=[0-9]{1,5}x[0-9]{1,5}找到这样的匹配...

在这里测试一下。

于 2012-07-03T17:14:06.320 回答
2

使用这个:

var oldSid = new RegExp("sid=\\d{1,5}x\\d{1,5}");

...或者(因为它不是动态正则表达式)这个:

var newUrl = oldUrl.replace(/sid=\d{1,5}x\d{1,5}/, newSid);
于 2012-07-03T17:14:53.743 回答