Ver Mensaje Individual
  #1 (permalink)  
Antiguo 24/06/2014, 14:30
Avatar de thedaket
thedaket
 
Fecha de Ingreso: junio-2011
Mensajes: 55
Antigüedad: 12 años, 10 meses
Puntos: 3
Sonrisa Experimento monerias con strings

Hola amigos hoy les traigo una clase que he hecho para javascript la cual te permite hacer:

Ordenar alfabéticamente una cadena
Ponerla a la inversa
Limpiarla de acentos
Convertirla en un arreglo ordenado o no y en mayúsculas o no

Esto lo hice en mis tiempos libres, no creo que sea muy útil pero la quiero compartir, y estaré agradecido si me dan su retroalimentación.

Saludos.

Código PHP:
function monerias(cadena) {
  
this.cadena = (cadena !== '' && typeof cadena === 'string') ? cadena false;
  
this.limpia '';
  
this.ascii = new Array();
  
this.from 'ÃÀÁÄÂÈÉËÊÌÍÏÎÒÓÖÔÙÚÜÛãàáäâèéëêìíïîòóöôùúüûÑñÇç';
  
this.to 'AAAAAEEEEIIIIOOOOUUUUaaaaaeeeeiiiioooouuuunncc';
  
this.mapping = {};
  
this.ret = new Array();
  
  
this.setCadena = function (val) {
    
this.cadena val;
    return 
this;
  };
  
this.getCadena = function () {
    return 
this.cadena;
  };
  
this.clean = function () {
    
this.ascii = new Array();
    
this.limpia '';
  };
  
this.inverse = function () {
    for (var 
0<= this.cadena.lengthi++) {
      if (
typeof this.cadena[(this.cadena.length i)] !== 'undefined') {
        
this.limpia += this.cadena[(this.cadena.length i)];
      }
    }
    
this.setCadena(this.limpia);
    
this.clean();
    return 
this;
  };
  
this.order = function () {
    
this.normalize();
    for (var 
0<= this.cadena.lengthi++) {
      if (
typeof this.cadena[(this.cadena.length i)] !== 'undefined') {
        
this.ascii[(=== 1) ? : (1)] = this.cadena[(this.cadena.length i)];
      }
    }
    
this.ascii.sort();
    for (var 
i in this.ascii) {
      if (
this.ascii[i] !== ' ') {
        
this.limpia += this.ascii[i];
      }
    }
    
this.setCadena(this.limpia);
    
this.clean();
    return 
this;
  };
  
this.toArray = function () {
    
this.inverse();
    for (var 
0<= this.cadena.lengthi++) {
      if (
typeof this.cadena[(this.cadena.length i)] !== 'undefined') {
        
this.ascii[(=== 1) ? : (1)] = this.cadena[(this.cadena.length i)];
      }
    }
    
this.setCadena(this.ascii);
    
this.clean();
    return 
this;
  };
  
this.toUpper = function () {
    
this.setCadena(this.getCadena() .toString() .toUpperCase());
    return 
this;
  };
  
this.toLower = function () {
    
this.setCadena(this.getCadena() .toString() .toLowerCase());
    return 
this;
  };
  
this.normalize = function () {
    for (var 
0this.from.lengthji++) {
      
this.mapping[this.from.charAt(i)] = this.to.charAt(i);
    }
    
    for (var 
0this.cadena.lengthji++) {
      var 
this.cadena.charAt(i);
      if (
this.mapping.hasOwnProperty(this.cadena.charAt(i))) {
        
this.ret.push(this.mapping[c]);
      } else {
        
this.ret.push(c);
      }
    }
    
this.setCadena(this.ret.join(''));
    return 
this;
  }

Y su implementación quedaría de la siguiente forma:

Código PHP:
var obj = new monerias('ejemplo');
//ejemplo para ordenar alfabéticamente en mayúsculas
console.log(obj.order().toUpper().getCadena());
//ejemplo para inversa
console.log(obj.inverse().getCadena());
//regresar un arreglo ordenado alfabéticamente en mayúsculas
console.log(obj.order().toArray().getCadena()); 
__________________
Sí AJAX quieres usar jQuery debes agregar...

Última edición por thedaket; 24/06/2014 a las 14:31 Razón: Ver si queda mejor con el codigo BB [PHP][/PHP]