Se trata de producir una salida en las que las palabras repetidas consecutivas sean reducidas a una sola aparición. Rellena las partes que faltan.
[~/Dropbox/src/javascript/PLgrado/repeatedwords(master)]$ tree --charset utf-8 . ├── README ├── global.css ├── index.html ├── input.txt ├── input2.txt ├── inputhtml1.txt └── repeated_words.js 0 directories, 7 files
[~/Dropbox/src/javascript/PLgrado/repeatedwords(master)]$ cat index.html <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <title>File Input</title> <link href="global.css" rel="stylesheet" type="text/css"> <script type="text/javascript" src="../../underscore/underscore.js"></script> <script type="text/javascript" src="../../jquery/starterkit/jquery.js"></script> <script type="text/javascript" src="repeated_words.js"></script> </head> <body> <h1>File Input</h1> <input type="file" id="fileinput" /> <div id="out" class="hidden"> <table> <tr><th>Original</th><th>Transformed</th></tr> <tr> <td> <pre class="input" id="initialinput"></pre> </td> <td> <pre class="output" id="finaloutput"></pre> </td> </tr> </table> </div> </body> </html>
Rellena los estilos para hidden
y unhidden
:
[~/Dropbox/src/javascript/PLgrado/repeatedwords(master)]$ cat global.css html * { font-size: large; /* The !important ensures that nothing can override what you've set in this style (unless it is also important). */ font-family: Arial; } .thumb { height: 75px; border: 1px solid #000; margin: 10px 5px 0 0; } h1 { text-align: center; font-size: x-large; } th, td { vertical-align: top; text-align: right; } /* #finaltable * { color: white; background-color: black; } */ /* #finaltable table { border-collapse:collapse; } */ /* #finaltable table, td { border:1px solid white; } */ #finaltable:hover td { background-color: blue; } tr:nth-child(odd) { background-color:#eee; } tr:nth-child(even) { background-color:#00FF66; } input { text-align: right; border: none; } /* Align input to the right */ textarea { border: outset; border-color: white; } table { border: inset; border-color: white; } .hidden { display: ____; } .unhidden { display: _____; } table.center { margin-left:auto; margin-right:auto; } #result { border-color: red; } tr.error { background-color: red; } pre.output { background-color: white; } span.repeated { background-color: red } body { background-color:#b0c4de; /* blue */
Rellena las expresiones regulares que faltan:
[~/srcPLgrado/repeatedwords(master)]$ cat repeated_words.js "use strict"; // Use ECMAScript 5 strict mode in browsers that support it $(document).ready(function() { $("#fileinput").change(calculate); }); function generateOutput(contents) { return contents.replace(/____________________/__,'__________________________________'); } function calculate(evt) { var f = evt.target.files[0]; var contents = ''; if (f) { var r = new FileReader(); r.onload = function(e) { contents = e.target.result; var escaped = escapeHtml(contents); var outdiv = document.getElementById("out"); outdiv.className = 'unhidden'; finaloutput.innerHTML = generateOutput(escaped); initialinput.innerHTML = escaped; } r.readAsText(f); } else { alert("Failed to load file"); } } var entityMap = { "&": "&", "<": "<", ">": ">", '"': '"', "'": ''', "/": '/' }; function escapeHtml(string) { return String(string).replace(/_________/g, function (s) { return ____________; });
[~/Dropbox/src/javascript/PLgrado/repeatedwords(master)]$ cat input2.txt habia una vez vez un viejo viejo hidalgo que vivia vivia [~/Dropbox/src/javascript/PLgrado/repeatedwords(master)]$ cat input.txt one one nothing rep is two three three four [~/Dropbox/src/javascript/PLgrado/repeatedwords(master)]$ cat inputhtml1.txt habia => una vez vez & un viejo viejo <puchum> hidalgo & <pacham> que vivia vivia </que se yo>
Casiano Rodríguez León