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
							 | 
						||
| 
								 | 
							
								};
							 |