Updated Text Upload

Text Upload Description

HTML

<input type="file" id="files" name="file" /> 
<span class="readBytesButtons">
  <button style="margin-left:20px;">Show file</button>
</span>

<pre id="finalOutput">
</pre>

JavaScript

function readBlob(opt_startByte, opt_stopByte) {

	var files = document.getElementById('files').files;
	var arr = [];
	var file = files[0];
	var start = parseInt(opt_startByte) || 0;
	var stop = parseInt(opt_stopByte) || file.size - 1;
	var reader = new FileReader();

	// If we use onloadend, we need to check the readyState.
	reader.onloadend = function (evt) {

		if (evt.target.readyState == FileReader.DONE) { // DONE == 2

			var newLineVar = "\r\n";

			var textInFile = evt.target.result;
			var textSplitted = textInFile.split(newLineVar);

			// console.log("[Initial] textSplitted ==> ", textSplitted.slice());

			// Reversing array so that looping reverse results in correct order.
			var reverseLoopingArr = textSplitted.reverse().slice();

			// console.log("[Spaces removed] reverseLoopingArr ==> ", reverseLoopingArr.slice());

			var i = reverseLoopingArr.length;

			var angularBracketRegex = new RegExp("(^<[0-9a-zA-Z. ]*>$)");

			while (i--) {
				// Breaking loop if regex matches.        
				if( angularBracketRegex.test(reverseLoopingArr[i].replace(/\r/g, "")) ) {
					break;
				} else {
					// Removing array values till our first regex matches.
					reverseLoopingArr.splice(i, 1);

					// Breaking loop if regex matches next value which is at one index less (due to reverse looping).
					if(angularBracketRegex.test(reverseLoopingArr[i - 1].replace(/\r/g, ""))) {
						break;
					}
				}
			}

			// Reversing array to correct order chaged by previous reverse.
			textSplitted = reverseLoopingArr.reverse().slice();

			// console.log("3. textSplitted ==> ", textSplitted.slice());

			var finalObj = {};

			var totalLength = textSplitted.length;

			var currentQuestionId;

			for (var i = 0; i < totalLength; i ++) {
				var fieldText = textSplitted[i].replace(/</g, "").replace(/>/g, "").replace(/\r/g, "");
		
				var isValueId = JSON.parse(JSON.stringify( angularBracketRegex.test(textSplitted[i].replace(/\r/g, "")) ));
		
				if(typeof currentQuestionId...