0
我想重新編號一個字符串中的整數,它具有這種格式(字母和整數):「e1b2xx4d3」。用Javascript重新編寫一個字符串中的整數
在這個例子中,我想得到:「e1b2xx3d4」;
我寫了下面的JS代碼:
var count = 0;
var matches;
var transcript = "e1b2xx4d3";
var transcript1 = transcript;
regex = /\d+/g;
while ((matches = regex.exec(transcript)) !== null) {
transcript1 = transcript1.replace(matches[0], ++count);
}
console.log(transcript1);
的想法是由它的序列號(計數),以替換字符串中的每個數字,但它並沒有因爲破壞性的內容替換的工作(在這裏,我們得到「e1b2xx4d3」,因爲「xx4」被替換爲「xx3」,但在下一次迭代中被「xx4」替換)。
我需要這樣做與正則表達式,因爲我處理的情況比所示的更復雜,並要求使用正則表達式。
我認爲我必須做兩遍(迭代):1.編譯替換和2.同時應用替換。
通過好奇心,有人可以找到一種方法來做到這一點?
小提琴:http://jsfiddle.net/0frru6fr/
不錯。我今天學到了東西。 – 2014-12-03 12:58:15