Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- document.addEventListener('DOMContentLoaded', function () {
- document.querySelectorAll('p').forEach(paragraph => {
- Array.prototype.slice.call(paragraph.childNodes, 0)
- .filter(child => child.nodeType === Node.TEXT_NODE)
- .forEach(child => {
- let expression
- let string
- let that
- let sentence
- let sentences
- let phrases
- let replacement
- expression = {}
- expression.sentence = /(?:\S[^\!\?\.\r\n]+(?=[\!\?\.\n\r\s\S])(?!\s)[\!\?\.\S]*|[\.\!\?]+)/gm
- expression.phrase = /(\([^\)]+\)|^[A-Z]?[^,]+,|^[A-Z]?\S+\s*\S+|\S+\s+\S+$|\S+([\.\!\?]*$)?)/gm
- string = child.textContent.replace(/(\s){2,}/g, '$1')
- sentences = []
- while ((that = expression.sentence.exec(string))) {
- phrases = that.shift().trim().match(expression.phrase)
- sentence = phrases.map(phrase => phrase.replace(/ /g, '\u00A0')).join(' ')
- sentences.push(sentence)
- }
- child.textContent = sentences.join(' ')
- })
- })
- })
Add Comment
Please, Sign In to add comment