Guest User

Untitled

a guest
Nov 21st, 2017
84
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.02 KB | None | 0 0
  1. document.addEventListener('DOMContentLoaded', function () {
  2. document.querySelectorAll('p').forEach(paragraph => {
  3. Array.prototype.slice.call(paragraph.childNodes, 0)
  4. .filter(child => child.nodeType === Node.TEXT_NODE)
  5. .forEach(child => {
  6. let expression
  7. let string
  8. let that
  9. let sentence
  10. let sentences
  11. let phrases
  12. let replacement
  13.  
  14. expression = {}
  15.  
  16. expression.sentence = /(?:\S[^\!\?\.\r\n]+(?=[\!\?\.\n\r\s\S])(?!\s)[\!\?\.\S]*|[\.\!\?]+)/gm
  17. expression.phrase = /(\([^\)]+\)|^[A-Z]?[^,]+,|^[A-Z]?\S+\s*\S+|\S+\s+\S+$|\S+([\.\!\?]*$)?)/gm
  18.  
  19. string = child.textContent.replace(/(\s){2,}/g, '$1')
  20. sentences = []
  21.  
  22. while ((that = expression.sentence.exec(string))) {
  23. phrases = that.shift().trim().match(expression.phrase)
  24. sentence = phrases.map(phrase => phrase.replace(/ /g, '\u00A0')).join(' ')
  25. sentences.push(sentence)
  26. }
  27.  
  28. child.textContent = sentences.join(' ')
  29. })
  30. })
  31. })
Add Comment
Please, Sign In to add comment