Hola a todos,
tengo un formulario con dos campos (uno texto y el otro numérico) y quiero que el campo texto sólo admita:
-letras del alfabeto(mayusculas y minúsculas,con acentos)
-la letra ñ
-espacios en blanco
esto es lo que he probado:
function validar(formulario)
{
//1º Comprobar, que no todos los campos a la vez estan vacíos
if ((formulario.nombre.value.length ==0)&&(formulario.codigoAsig.value.length ==0))
{
//ú en unicode:\u00FA
alert("No ha introducido ning\u00FAn criterio de b\u00FAsqueda");
formulario.nombre.focus();
return false;
}
else
{
//Si un campo no esta vacio, validar
//criterio escogido, nombre de 3 o mas
if ((formulario.nombre.value.length > 0)&&(formulario.nombre.value.length < 3))
{
alert("Escriba por lo menos 3 caracteres en el campo \"Nombre\".");
formulario.nombre.focus();
return (false);
}
var valid1 = /[A-Za-zñÑ\s]/;
if (valid1.test(formulario.nombre.value))
{
alert("OK");
}
else
{
//ó en unicode:\u00F3
alert("Escriba s\u00F3lo letras en el campo \"Nombre\".");
formulario.nombre.focus();
return (false);
}
//Si un campo no esta vacio validar
//criterio escogido, todo código de asignatura tiene 7 digitos
if ((formulario.codigoAsig.value.length > 0)&&(formulario.codigoAsig.value.length < 7))
{
alert("Escriba por lo menos 7 caracteres en el campo \"Apellido1\".");
formulario.codigoAsig.focus();
return (false);
}
var valid2 = /[0-9]/;
if (valid2.test(formulario.codigoAsig.value))
{
alert("OK");
}
else
{
//ó en unicode:\u00F3
alert("Escriba s\u00F3lo d\u00EDgitos en el campo \"C\u00F3digo\".");
formulario.codigoAsig.focus();
return (false);
}
}
}
La expresión regular marcada con rojo, creo que no esta bién.