Js Replace Not Working on String [Duplicate]

Trying to replace all instances of # in a string with a variable. It's not working but not retuning any error either.

answer_form = '<textarea name="answer_#" rows="5"></textarea>'+
              '<input type="file" name="img_#" />';

question_num = 5;

answer_form.replace(/#/g, question_num); 

The hashes remain.

Not sure what I'm missing?

0

.replace() returns a new string (it does not modify the existing string) so you would need:

answer_form = answer_form.replace(/#/g, question_num); 

You probably should also make question_num a string though auto type conversions probably handle that for you.

Working example:

FYI, in Javascript, strings are immutable - an existing string is never modified. So any method which makes a modification to the string (like concat, replace, slice, substr, substring, toLowerCase, toUpperCase, etc...) ALWAYS returns a new string.

3

Your code is correct. Just add the value to the variable like this:

answer_form = '<textarea name="answer_#" rows="5"></textarea>'+
              '<input type="file" name="img_#" />';

question_num = 5;

answer_form = answer_form.replace(/#/g, question_num); 
Sarah Jenkins

Sarah Jenkins

Senior Technology Editor & AI Specialist

Sarah Jenkins is a veteran tech journalist with over 12 years of experience covering artificial intelligence, mobile innovations, and digital ethics. Her insights have appeared in leading technology publications worldwide.

Share this article
Twitter Facebook Pinterest