JSFiddle - React, Tailwind, and code Playground
HTML
<input type="file" id="file-input" />
<h3>Contents of parshed file:</h3>
<strong>Your file most contain correct javscript formated script and 3 cases are not covered if your script contains lines like:
</br>
1. var exception1 = "// or /* or */";
</br>
2. var exception2 = '// or /* or */';
</br>
3. or strings containing : // or /* or */
</strong>
<pre id="file-content"></pre>
<h3>Parsed Output:</h3>
<div id='wrapper'></div>
<h4>RUN:</h4>
1. Create js file on your computer folowing corect format
<br>
2. Chose the File
<br>
3. Done
JavaScript
//read your file using FileReader
function readSingleFile(e) {
var file = e.target.files[0];
if (!file) {
return;
}
var reader = new FileReader();
reader.onload = function(e) {
var contents = e.target.result;
displayFileLineByLine(contents);
};
reader.readAsText(file);
}
//attach event on file upload
document.getElementById('file-input')
.addEventListener('change', readSingleFile, false);
//parse file input
function displayFileLineByLine(contents)
{
var lines = contents.split('\n');
var element = document.getElementById('file-content');
var output = '';
for(var line = 0; line < lines.length; line++){
var normedline = stripOut(lines[line]);
if (normedline.length > 0 )
{
output += normedline;
}
}
element.innerHTML = output;
}
// globa scope flag showing '/*' is open
var GlobalComentOpen = false;
//recursive line coments removal method
function stripOut(stringline, step){
//index global coment start
var igcS = stringline.indexOf('/*');
//index global coment end
var igcE = stringline.indexOf('*/');
//index inline coment pos
var iicP = stringline.indexOf('//');
var gorecursive = false;
if (igcS != -1)
{
gorecursive = true;
if (igcS < igcE) {
stringline = stringline.replace(stringline.slice(igcS, igcE +2), "");
}
else if (igcS > igcE && GlobalComentOpen) {
stringline = stringline.replace(stringline.slice(0, igcE +2), "");
igcS = stringline.indexOf('/*');
stringline = stringline.replace(stringline.slice(igcS, stringline.length), "");
}
else if (igcE == -1){
GlobalComentOpen = true;
stringline = stringline.replace(stringline.slice(igcS, stringline.length), "");
}
else
...