You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
39 lines
1.0 KiB
39 lines
1.0 KiB
'use strict'; |
|
|
|
const stringReplaceAll = (string, substring, replacer) => { |
|
let index = string.indexOf(substring); |
|
if (index === -1) { |
|
return string; |
|
} |
|
|
|
const substringLength = substring.length; |
|
let endIndex = 0; |
|
let returnValue = ''; |
|
do { |
|
returnValue += string.substr(endIndex, index - endIndex) + substring + replacer; |
|
endIndex = index + substringLength; |
|
index = string.indexOf(substring, endIndex); |
|
} while (index !== -1); |
|
|
|
returnValue += string.substr(endIndex); |
|
return returnValue; |
|
}; |
|
|
|
const stringEncaseCRLFWithFirstIndex = (string, prefix, postfix, index) => { |
|
let endIndex = 0; |
|
let returnValue = ''; |
|
do { |
|
const gotCR = string[index - 1] === '\r'; |
|
returnValue += string.substr(endIndex, (gotCR ? index - 1 : index) - endIndex) + prefix + (gotCR ? '\r\n' : '\n') + postfix; |
|
endIndex = index + 1; |
|
index = string.indexOf('\n', endIndex); |
|
} while (index !== -1); |
|
|
|
returnValue += string.substr(endIndex); |
|
return returnValue; |
|
}; |
|
|
|
module.exports = { |
|
stringReplaceAll, |
|
stringEncaseCRLFWithFirstIndex |
|
};
|
|
|