How to format a very large string (organize the text)

Asked

Viewed 1,391 times

0

I have an object with an attribute of type String that has a very large text, and I need to organize this string so that the text is organized and more beautiful.

I wonder if there are any JS plugins that solve my problem or solution with CSS and if someone has been through this situation, and give me an idea of how to solve the problem.

The object is coming like this:

EX:

var obj = {
    text: 'Contrary to popular belief, Lorem Ipsum is not simply random text. It has roots in a piece of classical Latin literature from 45 BC, making it over 2000 years old. Richard McClintock, a Latin professor at Hampden-Sydney College in Virginia, looked up one of the more obscure Latin words, consectetur, from a Lorem Ipsum passage, and going through the cites of the word in classical literature, discovered the undoubtable source. Lorem Ipsum comes from sections 1.10.32 and 1.10.33 of "de Finibus Bonorum et Malorum" (The Extremes of Good and Evil) by Cicero, written in 45 BC. This book is a treatise on the theory of ethics, very popular during the Renaissance. The first line of Lorem Ipsum, "Lorem ipsum dolor sit amet..", comes from a line in section 1.10.32.The standard chunk of Lorem Ipsum used since the 1500s is reproduced below for those interested. Sections 1.10.32 and 1.10.33 from "de Finibus Bonorum et Malorum" by Cicero are also reproduced in their exact original form, accompanied by English versions from the 1914 translation by H. Rackham.'
}

In the view the text is exactly the way it comes from the object, and basically I want to put paragraphs in that text.

PS: Basically I want to add paragraphs to this string

  • 1

    I think you might be looking for some CSS style to improve the presentation. String in js will be a String. By formatting, you mean capitalizing on words, something of the kind, or even formatting on screen?

  • Dude, I get several strings, and they’re all really big. In case, I just want to improve the presentation. I didn’t know it was possible to do anything with CSS. What I want is to make the text have paragraphs, basically.

  • 1

    Enter your code, maybe a print of the result and explain how you would like it to stay, add more details so someone can help you.

  • I put an excerpt there... I don’t know if it helps

  • i just don’t want the text to look like it was written by an 8 year old rsrs.

  • It depends on how this string comes you can just put one \n...

  • The problem is that I get different strings, there is no way I can simply add n. In case the ideal would be a function to format the text

Show 2 more comments

2 answers

1


A hint is to delimit the size of the output component, leave word markup to break word, block display and align justified. See the result:

#conteudo {
  width: 300px;
  word-wrap: break-word;
  display: inline-block;
  text-align:justify;
}

var obj = {
  text: 'Contrary to popular belief, Lorem Ipsum is not simply random text. It has roots in a piece of classical Latin literature from 45 BC, making it over 2000 years old. Richard McClintock, a Latin professor at Hampden-Sydney College in Virginia, looked up one of the more obscure Latin words, consectetur, from a Lorem Ipsum passage, and going through the cites of the word in classical literature, discovered the undoubtable source. Lorem Ipsum comes from sections 1.10.32 and 1.10.33 of "de Finibus Bonorum et Malorum" (The Extremes of Good and Evil) by Cicero, written in 45 BC. This book is a treatise on the theory of ethics, very popular during the Renaissance. The first line of Lorem Ipsum, "Lorem ipsum dolor sit amet..", comes from a line in section 1.10.32.The standard chunk of Lorem Ipsum used since the 1500s is reproduced below for those interested. Sections 1.10.32 and 1.10.33 from "de Finibus Bonorum et Malorum" by Cicero are also reproduced in their exact original form, accompanied by English versions from the 1914 translation by H. Rackham.'
}

document.getElementById("conteudo").innerHTML = obj.text;
#conteudo {
  width: 300px;
  word-wrap: break-word;
  display: inline-block;
  text-align:justify;
}
<div id="conteudo">
</div>

0

You can use this solution with Regex, however, depending on the patterns that appear in your text, you will have to add new rules.

<script>
var obj = 
{
    text: 'Contrary to popular belief, Lorem Ipsum is not simply random text.It has roots in a piece of classical Latin literature from 45 BC, making it over 2000 years old. Richard McClintock, a Latin professor at Hampden-Sydney College in Virginia, looked up one of the more obscure Latin words, consectetur, from a Lorem Ipsum passage, and going through the cites of the word in classical literature, discovered the undoubtable source.Lorem Ipsum comes from sections 1.10.32 and 1.10.33 of "de Finibus Bonorum et Malorum" (The Extremes of Good and Evil) by Cicero, written in 45 BC. This book is a treatise on the theory of ethics, very popular during the Renaissance.The first line of Lorem Ipsum, "Lorem ipsum dolor sit amet..", comes from a line in section 1.10.32.The standard chunk of Lorem Ipsum used since the 1500s is reproduced below for those interested. Sections 1.10.32 and 1.10.33 from "de Finibus Bonorum et Malorum" by Cicero are also reproduced in their exact original form, accompanied by English versions from the 1914 translation by H. Rackham.'
}

document.write(JSON.stringify(obj).replace(/(?:\bBC|[^\sA-Z])\.(?=\s|[A-Z])/g, '$&<br><br>'));
</script>

Regex based on this reply

Browser other questions tagged

You are not signed in. Login or sign up in order to post.