sí la he montado, pero no tiene nada de particular. quizás lo que más te llame la atención sea (\xc0-\xff). se trata de un rango de caracteres como (a-z) pero en este caso es el equivale
hexadecimal de caractes con acentos, eñes y algunos otros.
como ves empieza en c0 que es igual a À y acaba en ff que es ÿ. aunque como la expresión tiene el flag (i), el rago puede ser (\xe0-\xff)
en cuanto al código que expones, ya en la primera condicional se ve claramente que va a cumplir con tu objetivo. prueba así
Cita: function validar (form){
var s = /^([\da-z\xe0-\xff])(([\da-z\xe0-\xff]+)(\s*))+([\da-z\xe0-\xff]+)$/i;
if(!s.test(form.nombreamo.value)) {
alert("Introduzca un cadena de texto.") ;
return false;
}else {
if (form.email.value == "") return true;
//comprobacion de correo
var b= /^([a-zA-ZñÑ0-9_\.\-])+@(([a-zA-Z0-9\-])+\.)+([a-zA-Z0-9]{2,4})$/;
if (! b.test(form.email.value) ) {
alert('Email no válido');
return false;}
}
return true;
}
primero has de verificar el campo que es obligatorio y después el opcional
la licencia que me he tomado en la expresión es que acepte dos o mas palabras, en caso que sólo quieras que se pueda insertar una sola palabra la expresión sería var s = /^([\da-z\xe0-\xff]+)$/i;