我有一个这样的字符串:
var string = "value1=12345&value2=3210&value3=..."
我想删除value1和value2的两个最后一位数字,因此生成的字符串为:
string = "value1=123&value2=32&value3=..."
我可以在&
上拆分字符串,循环显示项目,如果项目以value1或value2开头,则删除最后两个字符,然后使用&
加入项目。但是如何做到尽可能短?
谢谢!
答案 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=..."
如果&
并非始终跟在字符串中,并且您严格要更改value1
和value2
...
var r = "value1=12345&value2=3210&value3=...".replace(/(value[12]=\d*)\d{2}/g, '$1');
console.log(r); //=> "value1=123&value2=32&value3=..."