Hola amigos, tengo un textarea para que los usuarios se escriban mensajes entre sí. En el lado del cliente lo valido con el siguiente javascript y funciona correctamente:
Código:
function clean_letters_and_numbers_ext(letters){
var valid_letters="ABCDEFGHIJKLMNÑOPQRSTUVWXYZÁÉÍÓÚabcdefghijklmnñopqrstuvwxyzáéíóúºª -0123456789,.;:_Ç(){}[]+*¿?¡!=/%$@¬\n\"'äëïöüÄËÏÖÜ";
letterok=true;
for (i=0; letterok && i<letters.length; i++){
letterok=false;
for (j=0; letterok==false && j<valid_letters.length; j++){
if (letters.charAt(i)==valid_letters.charAt(j)) letterok=true;
}
}
return letterok;
}
Pero en el lado del servidor utilizando una función muy parecida, me funciona todo menos los "intros" (\n):
Código:
function clean_letters_and_numbers_ext($letters){
$allow="ABCDEFGHIJKLMNÑOPQRSTUVWXYZÁÉÍÓÚabcdefghijklmnñopqrstuvwxyzáéíóúºª -0123456789,.;:_Ç(){}[]+*¿?¡!=/%$@¬\n\"'äëïöüÄËÏÖÜ";
$continue=true;
for ($i=0; $continue && $i<strlen($letters); $i++){
if (strpos($allow, substr($letters,$i,1))==false) $continue=false;
}
return $continue;
}
¿Por qué, en el lado del servidor, me coge las \" y no las \n?
¿Funcionaría mejor con expresiones regulares?
Muchas gracias