Le agrege un detalle, ya que si la persona agregaba un texto, y luego de hacer un cambio en otro campo queria dejar el primer campo en blanco, daba un error.
Solo valide que el campo estuviese lleno, antes de hacer toda la validación.
Código:
function validar_char(s){
if(s.value == null ){
// permite una o dos palabras con un solo espacio
var msk_w = /^([a-zá-úñ_\-]+\s?)+$/i
// eliminamos los espacios a ambos lados de la cadena
// y si existe mas de un espacio entre las palabras
// la replazamos por un solo espacio
var st = s.value.replace(/(^\s*)|(\s*$)/g, "").replace(/\s+/g," ");
// comprobamos si es valida la cadena
var tof = msk_w.test(st);
if(tof){
s.value = st;
//alert(tof + " -> \"" + st + "\"");
return false;
}
else{
alert("Palabra clave invalida");
//alert(tof + " -> \"" + st + "\"");
return true;
}
}
}