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.

4
  • In class's quotes or between <i> tags? Commented Jul 10, 2018 at 6:00
  • Sorry, inside the class, its a font-awesome icon. It'll be something like "fa fa-building" Commented Jul 10, 2018 at 6:02
  • Answer below will do the job, Commented Jul 10, 2018 at 6:02
  • <i class=""></i>'.replace('""', '"' + icon + '"') might do the job. Commented Jul 10, 2018 at 6:16

2 Answers 2

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

Sign up to request clarification or add additional context in comments.

1 Comment

Oh neat, this worked! I did NOT know about template literals! That can solve so many of my previous problems! Thank you!
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 = ','','>']

Comments

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.