ordenar

ordenación alfabética, con/sen maiúsculas, acentos, etc.

by abubelinha

HTML

<textarea id=textopegao rows=3 cols=60></textarea>
<input type=button id=procesar value="procesar">
<div id=texto style="border: 1px solid red;"></div>

JavaScript

// http://stackoverflow.com/a/19757717/710788
docwrite = function (str){ document.body.insertAdjacentHTML("beforeend", str); }

var rangovalores=["cáña","culo","Caña","cuño","araña","Araña","Ángel"
,"ónice","Omán","omaigod","ánfora","culo"];
var rollo='En un lugar de la Mancha, de cuyo nombre no quiero acordarme, no ha mucho tiempo que vivía un hidalgo de los de lanza en astillero, adarga antigua, rocín flaco y galgo corredor.';
document.getElementById("textopegao").value=rollo;
rollo=document.getElementById("textopegao").value;

function procesar() {
	var texto=document.getElementById('textopegao').value;
  
  texto=texto.replace(/(\r\n|\n|\r)/gm,"");
  texto=texto.replace(/(,|;|\(|\)|:|\.|\?|\"|-)/gm,"");
  rangovalores=texto.split(' ');
  
  document.getElementById('texto').innerHTML=texto + '<hr>' + JSON.stringify(rangovalores);
	//alert(texto);
  var arrayvalores=[];
  for(var valor in rangovalores) {
    arrayvalores.push([rangovalores[valor],"bla bla"]);
  }
  var arrayordenado=crearangordenado(arrayvalores);
  document.getElementById('texto').innerHTML += '<hr>'+ JSON.stringify(arrayordenado);
 
}
// PARA QUE FUNCIONE EN JSFIDDLE:
//  http://stackoverflow.com/questions/5468350/javascript-not-running-on-jsfiddle-net
var boton=document.getElementById("procesar");
boton.onclick=procesar;

// http://stackoverflow.com/questions/10805125/how-to-remove-all-line-breaks-from-a-string
//rollo=rollo.replace(/(\r\n|\n|\r)/gm,"");
rollo=rollo.replace(/(,|;|\(|\)|:|\.|\?|\"|-)/gm,"");
rangovalores=rollo.split(' ');

docwrite(rollo + '<hr>')
var rangordenado=crearangordenado(rangovalores);
docwrite(JSON.stringify(rangordenado) + '<hr>');


function crearangordenado(rangovalores) { /*
// pasámoslle os valores dun rango tipo así:
  rangovalores = ss.getRange("listas!c2:c").getValues(); // eliminamos o encabezado
  crearangordenado(rangovalores);
  
  devolve un arrai bidimensional de tipo [ ["Avelaira","2"], ["Bieiteiro","3"], ["mazaira","8"] ]
*/
  try {
    var...