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.
		
		
		
		
		
			
		
			
				
					40 lines
				
				1.0 KiB
			
		
		
			
		
	
	
					40 lines
				
				1.0 KiB
			| 
											3 years ago
										 | '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 | ||
|  | }; |