diff --git a/public/index.js b/public/index.js index f6611051b08ef9dfb4733426ff05e50d0179698c..0395eb9676398dc6ae340f5f5a201a9a51d02413 100644 --- a/public/index.js +++ b/public/index.js @@ -33,11 +33,18 @@ function toggleElement(id) { // and sets number of characters to property textLength on inputObj function handleTextAreaChange() { let value = document.getElementById("manual-text-entry").value; - value = value.trim(); inputObj.text = value; - let characters = value.split(' ').join('').length; + value = removeSpecialCharacters(value); + let characters = value.length; setCharacterLength(characters); - document.getElementById("calculatedTextCharacters").setAttribute('value', characters) + document.getElementById("calculatedTextCharacters").setAttribute('value', characters); +} + +// function removeSpecialCharacters: removes punctuation marks and other special characters +// but allows numbers and alphabets along with language specific characters German: äöüÄÖÜß and French: ùûüÿà âæéèêëïîôœÙÛÜŸÀÂÆÉÈÊËÃÎÔŒ +function removeSpecialCharacters(str) { + return str.replace(/(?!\w|\ä|\ö|\ü|\Ä|\Ö|\Ü|\ß|\ù|\û|\ü|\ÿ|\à |\â|\æ|\é|\è|\ê|\ë|\ï|\î|\ô|\Å“|\Ù|\Û|\Ÿ|\À|\Â|\Æ|\É|\È|\Ê|\Ë|\Ã|\ÃŽ|\Ô|\Å’)./g, '') // regex to remove special characters + .replace(/^(\s*)([\W\w]*)(\b\s*$)/g, '$2'); // regex to trim the string to remove any whitespace at the beginning or the end } @@ -123,18 +130,18 @@ function calculateReadingTime() { console.log(inputObj); // TODO: logic or algorithm for calculating reading time goes here - // inputObj.textLength has number of characters (number data type) - // inputObj.readerLevel has level of reader (number data type) - // inputObj.readerCategory has category of reader (number data type) + // inputObj.textLength has number of characters (number data type) + // inputObj.readerLevel has level of reader (number data type) + // inputObj.readerCategory has category of reader (number data type) + - // example calculation x = (inputObj.textLength * inputObj.readerLevel * inputObj.readerCategory); - + // set value to html element - var s= document.getElementById('reading-time-element'); + var s = document.getElementById('reading-time-element'); s.innerHTML = x; // display html element which shows time let element = document.getElementById('calculate-time-element');