Ho creato una funzione che verifica alla pressione di un tasto quali caratteri sono ammessi in una casella di input e cancella automaticamente il carattere non ammesso...la funzione è questa....

codice:
function controllaCaratteri(elemento){
  var pattern = /^([a-zA-Z0-9]+)|([a-zA-Z0-9\s?])$/ ;
	var str = elemento.value;
	if (str.search(pattern) == -1 ){
	    elemento.value=str.substr(0,str.length-1);
		  elemento.focus();
	}
}
il mio problema è che l'espressione regolare non fa quello che voglio
vorrei che la stringa ammetta caratteri alfanumerici ed al max un solo spazio ad esempio....

34 Belle Palline [valida]
Bella (con più spazi) pallina [non valida]

secondo voi, come dovrei scrivere l'espressione regolare?