如何从字符串中间的数字中删除最后一位数字?

时间:2014-09-11 23:36:51

标签: javascript regex replace

我有一个这样的字符串:

var string = "value1=12345&value2=3210&value3=..."

我想删除value1和value2的两个最后一位数字,因此生成的字符串为:

string = "value1=123&value2=32&value3=..."

我可以在&上拆分字符串,循环显示项目,如果项目以value1或value2开头,则删除最后两个字符,然后使用&加入项目。但是如何做到尽可能短?

谢谢!

2 个答案:

答案 0 :(得分:6)

string = string.replace(/(value[12]=\d*)\d{2}/g, '$1');

正则表达式与value1=value2=匹配,后跟一系列数字。捕获组获取所有内容,直到最后2位数。然后我们将匹配替换为捕获组,以便删除最后两位数字。

答案 1 :(得分:3)

根据给定字符串,您可以在此处使用正向前瞻来删除最后两位数字。

var r = "value1=12345&value2=3210&value3=...".replace(/\d{2}(?=&)/g, '');
console.log(r); //=> "value1=123&value2=32&value3=..."

如果&并非始终跟在字符串中,并且您严格要更改value1value2 ...

var r = "value1=12345&value2=3210&value3=...".replace(/(value[12]=\d*)\d{2}/g, '$1');
console.log(r); //=> "value1=123&value2=32&value3=..."