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

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.