UNPKG

1.03 kBJavaScriptView Raw
1'use strict';
2
3const stringReplaceAll = (string, substring, replacer) => {
4 let index = string.indexOf(substring);
5 if (index === -1) {
6 return string;
7 }
8
9 const substringLength = substring.length;
10 let endIndex = 0;
11 let returnValue = '';
12 do {
13 returnValue += string.substr(endIndex, index - endIndex) + substring + replacer;
14 endIndex = index + substringLength;
15 index = string.indexOf(substring, endIndex);
16 } while (index !== -1);
17
18 returnValue += string.substr(endIndex);
19 return returnValue;
20};
21
22const stringEncaseCRLFWithFirstIndex = (string, prefix, postfix, index) => {
23 let endIndex = 0;
24 let returnValue = '';
25 do {
26 const gotCR = string[index - 1] === '\r';
27 returnValue += string.substr(endIndex, (gotCR ? index - 1 : index) - endIndex) + prefix + (gotCR ? '\r\n' : '\n') + postfix;
28 endIndex = index + 1;
29 index = string.indexOf('\n', endIndex);
30 } while (index !== -1);
31
32 returnValue += string.substr(endIndex);
33 return returnValue;
34};
35
36module.exports = {
37 stringReplaceAll,
38 stringEncaseCRLFWithFirstIndex
39};