Forse stai usando qualcosa non presente nelle prime implementazioni di JS.

Il fatto di poter inserire una funzione nel secondo termine del replace, potrebbe non essere presente in versioni JS (o meglio Jscript) precedenti alla 1.2.

Dovresti controllare nei rispettivi siti, se tale particolarita` e` implementata.
Per Safari dovresti trovare: e` un browser piuttosto recente.
Per IE, invece, la politica di Microsoft e` di non supportare le versioni obsolete: secondo lei i browser vecchi andrebbero eliminati (compreso l'hw che li supporta); per questo sara` difficile trovare tali info.