Languages
[Edit]
EN

JavaScript - how to replace part of string from given index?

2 points
Created by:
AnnLen
9180

In this article, we're going to have a look at how to replace part of string from given index in JavaScript.

Quick solution:

// ONLINE-RUNNER:browser;

var text = 'This is text.'
var index = 2;
var insert = '__';

var result = text.substring(0, index) + insert 
    + text.substring(index + insert.length);

console.log(result);

Note: read this article to know how to remove part of text for given indexes.

Check below example for better solution.

1. Custom method example

Presented in this section solution allows to insert text outside of given string filling space with any characters (by default with space).

// ONLINE-RUNNER:browser;

function repeatText(count, text) {
	var result = '';
  	for (var i = 0; i < count; ++i) {
    	result += text;
    }
  	return result;
}

function replaceText(text, insert, index, spacer) {
  	if (spacer == null) {
      spacer = ' ';
    }
    var prefix = text.substring(0, index);
    var postfix = text.substring(index + insert.length);
  	var space = repeatText(index - text.length, spacer);
  
    return prefix + space + insert + postfix;
}

// Usage example:

console.log( replaceText('This is text.', '__',  0) ); // __is is text.
console.log( replaceText('This is text.', '__',  2) ); // Th__ is text.
console.log( replaceText('This is text.', '__', 11) ); // This is tex__

console.log( replaceText('This is text.', '__', 13) ); // This is text.__
console.log( replaceText('This is text.', '__', 15) ); // This is text.  __

console.log( replaceText('text...', '__', 10, '++') ); // text...++++++__

2. Custom method example with ES 2015

ES 2015 introduced repeat() method for string.

// ONLINE-RUNNER:browser;

const replaceText = (text, insert, index, spacer = ' ') => {
  const prefix = text.substring(0, index);
  const postfix = text.substring(index + insert.length);
  const space = spacer.repeat(index < text.length ? 0 : index - text.length);

  return prefix + space + insert + postfix;
};

// Usage example:

console.log( replaceText('This is text.', '__',  0) ); // __is is text.
console.log( replaceText('This is text.', '__',  2) ); // Th__ is text.
console.log( replaceText('This is text.', '__', 11) ); // This is tex__

console.log( replaceText('This is text.', '__', 13) ); // This is text.__
console.log( replaceText('This is text.', '__', 15) ); // This is text.  __

console.log( replaceText('text...', '__', 10, '++') ); // text...++++++__

 

Native Advertising
50 000 ad impressions - 449$
🚀
Get your tech brand or product in front of software developers.
For more information contact us:
Red dot
Dirask - friendly IT community for everyone.

❤️💻 🙂

Join