primero aclarar la función función trim() no existe en javascript. pero podemos simularla. esto es lo que se me ha ocurrido
Cita: var patron=/^\s+|\s+$/; // hace Trim
var patron=/^(([a-z\xc0-\xff]+)((\s)([a-z\xc0-\xff]+))?)$/i;// hace Trim al comienzo, validar espacio entre palabras y como máximo 2 palabras
var patron=/^([\da-z\xc0-\xff])(([\da-z\xc0-\xff]+)(?!(\n|\r\n))(\s){1,2})+([\da-z\xc0-\xff]+)$/i; // hace Trim al comienzo, se fuerza a que haya como mínimo dos palabras, se puede insertar (1 o 2) espacios entre palabras y no permite saltos de línea
var patron=/^([\da-z\xc0-\xff])(([\da-z\xc0-\xff]+)(\s*))+([\da-z\xc0-\xff]+)$/i; // hace Trim al comienzo, no se fuerza a que haya como mínimo dos palabras, se permite insertar (1) espacios entre palabras