Found a way to implement the incrementing value to index using regex.
But for subindex, how to retain the index value?
Note: It helps, If there is a way to increment the subindex value.
Sample Code: Link
let x = 0;
let index = new RegExp("pindex", "g");
let subIndex = new RegExp("psubindex", "g");
let result = paragraph.replace(index, function(match) {
return ( x);
}).replace(subIndex, function (match) {
return (x);
})
Input:
const sampleParagraphs =
` pindex. Lorem ipsum dolor sit amet, consectetur adipiscing elit
pindex. Lorem ipsum dolor sit amet, consectetur adipiscing elit.
psubindex.1. Lorem ipsum dolor sit
psubindex.2. Lorem ipsum dolor sit
`,
`. pindex. Lorem ipsum dolor sit amet, consectetur adipiscing elit.`,
` pindex. Lorem ipsum dolor sit amet, consectetur adipiscing elit.
psubindex.1. Lorem ipsum dolor sit
psubindex.2. Lorem ipsum dolor sit
psubindex.3. Lorem ipsum dolor sit
`,
` pindex. Lorem ipsum dolor sit amet, consectetur adipiscing elit.
psubindex.1. Lorem ipsum dolor sit
`
Expected Output:
` 1. Lorem ipsum dolor sit amet, consectetur adipiscing elit
2. Lorem ipsum dolor sit amet, consectetur adipiscing elit.
2.1. Lorem ipsum dolor sit
2.2. Lorem ipsum dolor sit
`,
` 3. Lorem ipsum dolor sit amet, consectetur adipiscing elit.`,
` 4. Lorem ipsum dolor sit amet, consectetur adipiscing elit.
4.1. Lorem ipsum dolor sit
4.2. Lorem ipsum dolor sit
4.3. Lorem ipsum dolor sit
`,
` 5. Lorem ipsum dolor sit amet, consectetur adipiscing elit.
5.1. Lorem ipsum dolor sit`
CodePudding user response:
The problem with the referenced code is that it replaces all pindex
first, then all psubindex
, e.g. all psubindex
will have the last index value 5.
You can use a single replace instead of two:
function replaceIndex(paragraph) {
let x = 0;
return paragraph.replace(/(pindex|psubindex)/g, function(match) {
if(match === 'pindex') {
x;
}
return x;
});
}
const paragraphSample = `
pindex. Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.
pindex. Lorem ipsum dolor sit amet, consectetur adipiscing elit.
psubindex.1. Lorem ipsum dolor sit
psubindex.2. Lorem ipsum dolor sit
pindex. Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod.
pindex. Lorem ipsum dolor sit amet, consectetur adipiscing.
psubindex.1. Lorem ipsum dolor sit
psubindex.2. Lorem ipsum dolor sit
psubindex.3. Lorem ipsum dolor sit
psubindex.4. Lorem ipsum dolor sit
pindex. Lorem ipsum dolor sit amet, consectetur adipiscing elit.
psubindex.1. Lorem ipsum dolor sit
`;
const output = replaceIndex(paragraphSample);
console.log(output);