2

I have a huge string like this:

'<i class=""></i>'

I have a variable called icon. I need to place icon in between the two quotes. Although it feels simple, I've been struggling to wrap my head around it. Can someone please help? JS newbie here.

Di437
  • 183
  • 3
  • 11

2 Answers2

5

The delimiters of your string are ', so just end the ', concatenate the icon, and resume the ':

const icon = 'myIcon';
const str = '<i class="' + icon + '"></i>';
console.log(str);

But you might find it more readable to use a template literal instead, especially if you're building an HTML string, or if it's multi-line, or if you're having any issues with escape characters: begin and end the string with backticks, and insert variables by putting them inside of ${varNameHere}:

const icon = 'myIcon';
const icon2 = 'myIcon2';
const icon3 = 'myIcon3';
const str = `
<i class="${icon}"></i>
<i class="${icon2}"></i>
<i class="${icon3}"></i>
`;
console.log(str);
CertainPerformance
  • 356,069
  • 52
  • 309
  • 320
  • Oh neat, this worked! I did NOT know about template literals! That can solve so many of my previous problems! Thank you! – Di437 Jul 10 '18 at 06:17
0

You can split it using .split() function.

  const icon = 'Idk'
  var str = '<i class = "">';
  var strSplit = str.split('"');
  var addString = strSplit[0] + '"' + icon + '"' + strSplit[2];
  console.log(addString);

The array strSplit contains ['<i class = ','','>']

Lucifer
  • 645
  • 6
  • 14