Non ho mai detto che è un linguaggio di programmazione

Il paragone col PHP l' ho fatto solo per far capire la struttura dell' espressione regolare.

Comunque, stavo provando così:

codice:
 
var pattern = new RegExp("[0-9a-zA-Z!?,.:-]");
var stringa = ";Ciao|";
var result = stringa.test(pattern);
if(result) {
	alert('ciao');
} else {
	alert('No');
}
Ovvero devo permettere solamente numeri, lettere e questi caratteri: ! ? : . , -

Se la stringa contiene qualcosa che non sia scritta nell' espressione regolare, rimanda errore, però non appare nulla, nemmeno se uso .exec() al posto di test() , forse l' espressione regolare è errata? Pensavo fosse colpa del trattino finale ma togliendolo non cambia nulla.