sr28
sr28

Reputation: 5156

How to properly strip HTML tags dynamically using javascript?

I know this type of question has been asked before, which is how I came up with my regular expression in the first place, but my coding doesn't seem to be working.

I'm combining 2 things, firstly I'm trying to restrict a multiline textbox to 6000 characters and have this work on key up, which it does nicely. However, as part of this I also want to strip out HTML tags BEFORE checking the length, which is the bit that's not working. My code is below:

function TruncateNotes(text) {
    var notesfield = document.getElementById(text.id);
    //strip html tags such as < and > out of the text before checking length
    stripHTML(text);

    var maxlength = 6000;

    if (notesfield.value.length > maxlength) {
        notesfield.focus();
        notesfield.value = text.value.substring(0, maxlength);
        notesfield.scrolltop = notesfield.scrollHeight;
        return false;
    }
    else {
        return true;
    }
}

function stripHTML(text) {
    var notesfield = document.getElementById(text.id);
    notesfield.value.replace(/<.*?>/g, "");
}

My feeling is that's something to do with the regular expression as I'm not very good with those. Any suggestions?

Upvotes: 0

Views: 382

Answers (1)

Paul-Jan
Paul-Jan

Reputation: 17278

JavaScript '.replace' does not modify the original string, it returns a string with the values replaced. This means you'll have to assign it back to notesfield.value after the operation:

notesfield.value = notesfield.value.replace(/<.*?>/g, "");

Upvotes: 2

Related Questions