Se usi match devi usare una stringa come argomento, non un oggetto RegExp.

Se vuoi usare un oggetto RegExp, devi usare il metodo .test (dell'oggetto regExp).

Prova:
if (!str.match(exp)) alert ("Non valido");