Skip to main content
added 612 characters in body
Source Link
dBeltowski
  • 3.1k
  • 3
  • 21
  • 38

Title says it all. Here is some example code.

String test = '\n\n\n\n'; // All New Line characters

System.debug( String.isBlank(test) ); // Returns true
System.debug( String.isEmpty(test) ); // Returns false
System.debug( test ); // Yields several empty lines in the debug output.

test = test.stripHtmlTags();

System.debug( String.isBlank(test) ); // Returns true
System.debug( String.isEmpty(test) ); // Returns true
System.debug( test ); // Yields no empty lines in the debug output

So I have a String which may or may not have HTML tags. I want to remove the HTML tags and translate <br> to new lines \n, which stripHtmlTags does fine.

My problem is that I may not always have HTML in my string, and when I do not have HTML I still want to keep my formatting.

stripHtmlTags also removed carriage return \r and tab space \t and possibly others I didn't check.


UPDATE

This is the official response from Salesforce on the issue. stripHtmlTags() is WAD and they are going to update the documentation to reflect the fact that it removes white-space characters as well as HTML tags.

As per update from the team, we have revisited the implementation of the method, we have created a Doc Bug to make note of this in our documentation. The whitespace characters in the string get stripped.

So, a Doc Bug has been logged for this to be included that whitespace kind of characters is not preserved when using this method.

Title says it all. Here is some example code.

String test = '\n\n\n\n'; // All New Line characters

System.debug( String.isBlank(test) ); // Returns true
System.debug( String.isEmpty(test) ); // Returns false
System.debug( test ); // Yields several empty lines in the debug output.

test = test.stripHtmlTags();

System.debug( String.isBlank(test) ); // Returns true
System.debug( String.isEmpty(test) ); // Returns true
System.debug( test ); // Yields no empty lines in the debug output

So I have a String which may or may not have HTML tags. I want to remove the HTML tags and translate <br> to new lines \n, which stripHtmlTags does fine.

My problem is that I may not always have HTML in my string, and when I do not have HTML I still want to keep my formatting.

stripHtmlTags also removed carriage return \r and tab space \t and possibly others I didn't check.

Title says it all. Here is some example code.

String test = '\n\n\n\n'; // All New Line characters

System.debug( String.isBlank(test) ); // Returns true
System.debug( String.isEmpty(test) ); // Returns false
System.debug( test ); // Yields several empty lines in the debug output.

test = test.stripHtmlTags();

System.debug( String.isBlank(test) ); // Returns true
System.debug( String.isEmpty(test) ); // Returns true
System.debug( test ); // Yields no empty lines in the debug output

So I have a String which may or may not have HTML tags. I want to remove the HTML tags and translate <br> to new lines \n, which stripHtmlTags does fine.

My problem is that I may not always have HTML in my string, and when I do not have HTML I still want to keep my formatting.

stripHtmlTags also removed carriage return \r and tab space \t and possibly others I didn't check.


UPDATE

This is the official response from Salesforce on the issue. stripHtmlTags() is WAD and they are going to update the documentation to reflect the fact that it removes white-space characters as well as HTML tags.

As per update from the team, we have revisited the implementation of the method, we have created a Doc Bug to make note of this in our documentation. The whitespace characters in the string get stripped.

So, a Doc Bug has been logged for this to be included that whitespace kind of characters is not preserved when using this method.

Tweeted twitter.com/StackSalesforce/status/835082285053587456
Source Link
dBeltowski
  • 3.1k
  • 3
  • 21
  • 38

stripHtmlTags removes new line \n characters. Bug or feature?

Title says it all. Here is some example code.

String test = '\n\n\n\n'; // All New Line characters

System.debug( String.isBlank(test) ); // Returns true
System.debug( String.isEmpty(test) ); // Returns false
System.debug( test ); // Yields several empty lines in the debug output.

test = test.stripHtmlTags();

System.debug( String.isBlank(test) ); // Returns true
System.debug( String.isEmpty(test) ); // Returns true
System.debug( test ); // Yields no empty lines in the debug output

So I have a String which may or may not have HTML tags. I want to remove the HTML tags and translate <br> to new lines \n, which stripHtmlTags does fine.

My problem is that I may not always have HTML in my string, and when I do not have HTML I still want to keep my formatting.

stripHtmlTags also removed carriage return \r and tab space \t and possibly others I didn't check.