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');