Io rimango della mia opinione sulla non necessità di scomodare le regex.

La questione js è giusta ma nn ci azzecca nulla il problema qui presentato (il tuo appunto è fuoriluogo). In tal caso avrebbe postato in una sezione diversa del forum, e cmq era un di più che non eliminava la necessità di un controllo lato server.

Il mio codice è scritto in maniera sbrigativa.

Cmq basta modificatre i valori di default dei due operatori ternari con null e in controllo all'interno della condizione l'avrei fatta con is_null().