[^\d] specifica qualsiasi carattere che non sia un caratere numerico.
Si puo` scrivere anche /\D/ (che sostituisce tutta la RegExp).

Il metodo .replace, applicato ad una stringa sostituisce quanto definito nella RegExp con cio` che e` contenuto nella stringa definita nel secondo parametro passato al metodo.

Quindi in totale, il tutto elimina i caratteri non numerici, probabilmente da un campo di input.

Anzi no, li elimina dall'identificatore del tag. Non credo sia una cosa utile; e non tutti i browser accettano la modifica dell'id.

Se quel JS e` inserito in un evento di un campo di tipo text, va riscritto come:
onkeyup="this.value=this.value.replace(/\D/,'');"