Disclaimer: I am new to programming! I looked at S.O. to find the answer to this question before posting, but did not find the answer I need.
Currently, the API I'm working with returns a variable: 'description'. "description" is a dynamic 250-character string with punctuation.
I need to truncate a string to 110 characters and then insert an ellipsis into it. It's simple enough - I used something like:
description.slice(0,110) + "..."
But the above is problematic, because I have no way to predict which character my string will truncate to. If it truncates punctuation or a space, the result looks really stupid:

, , . , , , , .
- ? , , .