Reputation: 2618
given the following string:
var htmlStr = '<p class="red_349dsa01">This is</p><p class="blue_saf9vsaz">a test</p>';
how can I remove the very first and last tag off this string? This would be the result:
var htmlStr = 'This is</p><p class="blue_saf9vsaz">a test';
I know this will create invalid HTML, but I just want to know if this can be done at all.
Upvotes: 4
Views: 2716
Reputation: 166376
You could try something like
var htmlStr = '<p class="red_349dsa01">This is</p><p class="blue_saf9vsaz">a test</p>';
alert(htmlStr.substring(htmlStr.indexOf('>') + 1, htmlStr.lastIndexOf('<')));
Upvotes: 4
Reputation: 344557
You would need a regular expression here:
var regex = /(?:^<p[^>]*>)|(?:<\/p>$)/g;
var htmlStr = '<p class="red_349dsa01">This is</p><p class="blue_saf9vsaz">a test</p>';
htmlStr.replace(regex, "");
An explanation of the regex:
(?:^<p[^>]*>)
uses the caret ^
character to match the start of the string, <p
will match the start of the opening p
tag,[^>]*
will match any character except the >
character,|
splits the expression into two, one in each pair of braces where either can be matched,<\/p>$
expression will match a closing </p>
tag only if it is right at the end of the string by using the $
character.Upvotes: 2